Python:我正在尝试重命名(切掉)单个文件夹中所有文件的最后 15 个字符,而不切掉“mychoppingfile.py”。此外,程序只能为每个文件运行一次(我猜这将通过在处理后将输出文件移动到新目录来处理?)。这就是我所拥有的:
#!/usr/bin/python
import os
files = os.listdir('.')
for filename in files:
os.rename(filename, filename[:-15])
Python:我正在尝试重命名(切掉)单个文件夹中所有文件的最后 15 个字符,而不切掉“mychoppingfile.py”。此外,程序只能为每个文件运行一次(我猜这将通过在处理后将输出文件移动到新目录来处理?)。这就是我所拥有的:
#!/usr/bin/python
import os
files = os.listdir('.')
for filename in files:
os.rename(filename, filename[:-15])
一种方法是使用字典:
import os
files = os.listdir('.')
seen = dict()
for filename in files:
if len(filename) > 15 and filename != 'mychoppingfile.py':
tofile = filename[:-15]
if tofile not in seen:
print filename + " -> " + filename[:-15]
seen[tofile] = 1
exclude = ['mychoppingfile.py'] # could add more exclusions to this list
for filename in files: # see notes below
if not filename in exclude:
os.rename(filename, filename[:-15])
但是也有很多问题:
os.walk
用来获取文件您忘记指定您面临的问题。
无论如何,请注意,如果您的文件名少于 16 个字符,那么您将尝试将它们重命名为空字符串,这当然是错误的。也许这就是问题所在。
其他不好的事情是您可能还要重命名脚本本身。