【发布时间】:2010-10-13 02:55:31
【问题描述】:
我有一个充满文件的目录,其中一些文件的名称中有一个 & 符号。我想用&符号重命名所有文件,并用加号(+)替换每个&符号。我正在处理大约 10k 个文件。最好的方法是什么?
【问题讨论】:
-
是10K文件的平面目录,还是有子目录的目录树?
我有一个充满文件的目录,其中一些文件的名称中有一个 & 符号。我想用&符号重命名所有文件,并用加号(+)替换每个&符号。我正在处理大约 10k 个文件。最好的方法是什么?
【问题讨论】:
import glob, os
for filename in glob.glob(os.path.join(yourPath, "*&*")):
os.rename(filename, filename.replace('&','+'))
【讨论】:
glob.iglob 仅存在于 Jython 2.5+ 中(2.2 缺少它)。
如果你有子目录:
import os
for dirpath, dirs, files in os.walk(your_path):
for filename in files:
if '&' in filename:
os.rename(
os.path.join(dirpath, filename),
os.path.join(dirpath, filename.replace('&', '+'))
)
【讨论】:
'+')), 附近的逗号。
os.walk (虽然 OP 询问 single 目录,但一般来说 os.walk 是首选)。
os.walk(但 jython 2.5 有)。
import os
directory = '.'
for file in os.listdir(directory):
if '&' in file :
os.rename(file, file.replace('&', '+'))
用你自己的路径替换directory。
【讨论】:
使用rename:
$ rename --find '&' --replace '+' *
【讨论】: