首先我是python中的新手。 我有大量文件(117个文件),我认为他们的名字是UTF-8。这是一个文件名样本:
1|جاÙا JAVA : ÙÙÙÙ٠اÙخصائص Attributes Ù٠اÙبرÙجة|R9Rku3z63uI.mp4
我想更改这些文件名,所以我制作了以下python脚本:
# -*- coding: utf-8 -*-
import os
names = "مقدمة الدورة و \n مفهوم الكائنات في البرمجة\nمفهوم الخصائص Attributes في البرمجة............"
i = 0
for r,dirs,files in os.walk('/media/sdd3vil/SDDEvilOthers/Programming/Java/java101/'):
files.sort()
fa = '\n'.join(files)
fc = fa.split('\n')
while i < 118 :
os.rename(fc[i], names[i])
print "%s Changed To %s" % (f3, names[i])
i +=1
continue
“names”变量包含我想在原始文件名中替换的名称。 但我得到以下例外:
Traceback (most recent call last):
File "Re.py", line 20, in <module>
os.rename(fc[i], names[i])
OSError: [Errno 2] No such file or directory
任何人都可以解释问题是什么,并给我们一个解决方案。 感谢。
答案 0 :(得分:0)
您的名称变量只是一个字符串而不是列表,因此 names [i] 只是其中的第i个字符。您可以将其初始化为列表,也可以在使用前将其拆分()。
当您的代码没有按照您的期望/期望行事时,通常是因为您的变量不包含您的想法,因此在错误打印变量值之前添加print语句应该是您的第一反应.. (或者你的第二个,因为一些代码审查可以发现这样的问题)