从文本fi重命名文件夹中的文件

2024-04-28 22:07:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以从文本文件重命名文件夹中的文件 ..? 在

我解释一下:

我有一个文本文件,我们在其中找到每一行的名称和路径(和校验和)。 我想重命名每个照片文件的名称(路径)。在

从文本文件中提取:

...

15554615_05_hd.jpg /photos/FRYW-1555-16752.jpg de9da252fa1e36dc0f96a6213c0c73a3 15554615_06_hd.jpg /photos/FRYW-1555-16753.jpg 04de10fa29b2e6210d4f8159b8c3c2a8

...

我的/照片文件夹:

My /photos folder

示例:

将文件FRYW-1555-16752.jpg重命名为15554615_05_高清.jpg在

我的脚本(只是一个开始):

for line in open("myfile.txt") :
    print line.rstrip('\n') # .rstrip('\n') removes the line breaks

Tags: 文件路径文件夹名称line照片重命名jpg
3条回答

像这样的事情应该行得通。将txt替换为从文件中读取,对于文件名,使用类似于os.walk

import os
import shutil

txt = """
15554615_05_hd.jpg /photos/FRYW-1555-16752.jpg de9da252fa1e36dc0f96a6213c0c73a3
15554615_06_hd.jpg /photos/FRYW-1555-16753.jpg 04de10fa29b2e6210d4f8159b8c3c2a8
"""

filenames = 'FRYW-1555-16752', 'FRYW-1555-16753.jpg'

new_names = []
old_names = []
hashes = []
for line in txt.splitlines():
    if not line:
        continue

    new_name, old_name, hsh = line.split()
    new_names.append(new_name)
    old_names.append(old_name)
    hashes.append(hsh)

dump_folder = os.path.expanduser('~/Desktop/dump')  # or some other folder ...
if not os.path.exists(dump_folder):
    os.makedirs(dump_folder)
for old_name, new_name in zip(old_names, new_names):
    if os.path.exists(old_name):
        base = os.path.basename(old_name)
        dst = os.path.join(dump_folder, base)
        shutil.copyfile(old_name, dst)

问题可以通过以下方式解决:

  • 使用os.listdir()循环遍历所有文件。listdir将帮助您获得所有文件名,与当前目录一起使用操作系统列表目录(“”)
  • 然后使用os.rename()重命名文件:操作系统重命名(旧名,新名)

示例代码:假设您正在处理*.jpg

added = "NEW"

for image in os.listdir("."):
    new_image = image[:len(image)-4] + added + image[len(image)-4:]
    os.rename(image, new_image)
import os

with open('file.txt') as f:
    for line in f:
        newname, file, checksum = line.split()
        if os.path.exists(file):
            try:
                os.rename(file, os.sep.join([os.path.dirname(file), newname]))
            except OSError:
                print "Got a problem with file {}. Failed to rename it to {}.".format(file, newname)

相关问题 更多 >