我想知道是否可以从文本文件重命名文件夹中的文件 ..?
我解释:
我有一个文本文件,我们在其中找到每个行的名称和路径(以及校验和)。 我想重命名每个照片文件(路径)的名称。
从文本文件中提取:
...
15554615_05_hd.jpg /photos/FRYW-1555-16752.jpg de9da252fa1e36dc0f96a6213c0c73a3 15554615_06_hd.jpg /photos/FRYW-1555-16753.jpg 04de10fa29b2e6210d4f8159b8c3c2a8
...
我/照片文件夹:
实施例
将文件FRYW-1555-16752.jpg重命名为15554615_05_hd.jpg
我的脚本(只是一个开头):
for line in open("myfile.txt") :
print line.rstrip('\n') # .rstrip('\n') removes the line breaks
答案 0 :(得分:2)
这样的事应该奏效。将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)
答案 1 :(得分:1)
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)
答案 2 :(得分:1)
问题可以通过以下方式解决:
示例代码:假设您正在处理* .jpg
added = "NEW"
for image in os.listdir("."):
new_image = image[:len(image)-4] + added + image[len(image)-4:]
os.rename(image, new_image)
答案 3 :(得分:0)
是的,可以做到。
您可以在子问题中划分问题:
我相信会有更快/更好/更有效的方法来做到这一点,但这一切都来分裂和征服你的问题及其子问题。
可以使用循环在python中完成,在读/写模式下打开文件,使用“os”模块来访问文件系统。