我正在尝试使用 python 重命名文件,但我无法确定错误的确切位置,也许我太累了,因为试图不停地这样做超过 30 个小时。
当您查看所需输出和实际输出时,实际问题非常明显。
#!/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 中做错了什么?
感谢您阅读/回答此问题!