我已经写了一个小程序来重命名一个大的一堆文件在python蟒蛇os.rename模块删除文件
#!/usr/local/bin/python3
import os
import glob
import sys
script, arg1 = sys.argv
f = open(arg1)
# Create a filelist using glob
filelist = glob.glob('*.avi')
filelist.sort()
for filename in filelist:
print(filename)
# To keep the file ending
os.rename(filename, f.readline()[:-1]+filename[-4:])
它读出名字被作为参数给出一个txt文件和重命名其他avi
文件。但是有一个文件缺少开始数字'102',所以现在从'102'开始的完整顺序是错误的。如果我现在重新运行此文件并删除我的txt
文件中的第102行,则会删除102以上的每个文件,但最后一个除外。
请问您是否知道如何解决这个小错误,并向我解释发生这种情况的原因,因为我工作的时间太长了。
---编辑---
我的文本文件的一小段
snip
099. Abenteuer in Ido
100. Corsa, der junge Rebell
101. Unser Papa ist ein Held
102. Die Gesetze des Vertrauens
103. Um acht in Spider's Cafe
104. Ruffy gegen Vivi
105. Aufruhr in Rainbase
snip
不胜枚举高达400我已经得到了300个文件,以便与os.rename问题将不会发生。编号为102的文件在我第一次运行该脚本时并不存在,因此上面的所有内容都是一个错误的数字。我添加了文件102并希望重新运行此脚本。
的文件之前,我重新运行:
...
100. Corsa, der junge Rebell.avi
101. Unser Papa ist ein Held.avi
102. Die Gesetze des Vertrauens.avi
103. Um acht in Spider's Cafe.avi
104. Ruffy gegen Vivi.avi
105. Aufruhr in Rainbase.avi
...
后的文件:
...
100. Corsa, der junge Rebell.avi
101. Unser Papa ist ein Held.avi
301. Sogeking, der Held der Stunde.avi
...
如果您需要任何更多的信息,我公司将提供它尽可能地
我不太明白这个问题。您能否提供文本文件的内容,运行脚本之前存在的avi文件列表,以及之后存在的avi文件列表? – Kevin
是的,您使用的列表将非常有帮助。 – StephenH
作为一个初学者,在你命中这行之前:'os.rename(filename,f.readline()[: - 1] + filename [-4:])''我会添加下面的调试语句: 'temp = f .readline()' 'print filename,(temp + filename [-4:])' 这会帮助您理解正在处理的文件名 – StephenH