파일을 삭제파이썬 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
목록은 내가 os.rename의 문제 때문에 300 개 파일을 가지고 최대 400으로 진행
일어나지 않을거야. 번호 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