我正在嘗試使用python重命名文件,但我無法確切地知道錯誤在哪裏,也許我太累了,因爲試圖這樣做超過30小時不停。os.renames的Python使用
的實際問題,當你在看所需的輸出,並在實際一個相當明顯的。
#!/usr/bin/env python
import sys
import os
import glob
if __name__ == '__main__':
input_file=sys.argv[1]
File= open(input_file)
while True:
line=File.readline()
words = line.split()
if not ("call" or "song") in words:
break
folder_dest= words[0] +" "+ words[1]
subfolder=words[3]
filename=words[4].replace(".wav","")
folder_now=words[7].replace(".wav","")
os.chdir(folder_now)
i=1
for files in glob.glob("*.wav"):
os.renames(files,"../"+folder_dest+"/"+subfolder+"/"+filename+"-"+'{:03}'.format(i)+".wav")
i+=1
os.chdir("..")
更多的解釋:
我有這個輸入文件
Aegolius harrisii song 10009.wav Aegolius harrisii song 21.wav
Aegolius harrisii song 483_Aegolius%20harrisii_F27_Itatira_28_IV_2004_Weber%20Girao.wav Aegolius harrisii song 22.wav
Gnorimopsar chopi song 1000517.wav Gnorimopsar chopi song 825.wav
Myiobius barbatus call Myiobius.sulphureipygius9402-1.wav Myiobius barbatus call 1146.wav
Myiobius barbatus song 1001.wav Myiobius barbatus song 1147.wav
Muscipipra vetula call 1000682.wav Muscipipra vetula call 1122.wav
這是當前文件夾結構:
1
├── parte_1.wav
└── parte_2.wav
2
├── parte_1.wav
├── parte_2.wav
├── parte_3.wav
├── parte_4.wav
├── parte_5.wav
└── parte_6.wav
...
這裏是輸出爲現在:
Aegolius harrisii/
├── 100015.wav
│ ├── Aegolius-001.wav
│ └── Aegolius-002.wav
└── AEGOLI~1.wav
├── Aegolius-001.wav
├── Aegolius-002.wav
├── Aegolius-003.wav
├── Aegolius-004.wav
├── Aegolius-005.wav
└── Aegolius-006.wav
所需的輸出
Aegolius harrisii/
├── call
│ ├── 100015-001.wav
│ └── 100015-002.wav
└── song
├── AEGOLI~1-001.wav
├── AEGOLI~1-002.wav
├── AEGOLI~1-003.wav
├── AEGOLI~1-004.wav
├── AEGOLI~1-005.wav
└── AEGOLI~1-006.wav
的問題是:什麼我'做錯了在os.renames?
謝謝你閱讀/回答這個!
您輸入輸入文件的方式導致所有行一起運行。我已將其編輯爲我認爲您想要的內容,請驗證錯誤是否正確。 – abarnert