2016-05-31 77 views
0

首先,我是Python新手。 我有一个大容量文件(117个文件)的,我认为他们的名字是UTF-8。这里是一个文件名示例:更改多个文件名 - python脚本

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 

的“名称”变量包含了我想在原来的文件名来代替名字。 但我得到以下异常:

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

变量只是一个字符串,而不是一个列表,因此名[I]只是在它的第i个字符。您可以将它初始化为一个列表,或者在使用之前将其分开()。

当您的代码不符合您的要求时,通常是因为您的变量不包含您的想法,因此在错误发生前打印变量值之前添加一个打印语句应该是您的第一个反射。 ..(或你的第二个,因为位代码审查可以发现这样的问题)

+0

我没有任何问题,指数,因为我使用“打印”语句和我得到的结果,我只need.I与有问题函数,改变文件名。虽然我试图改变在终端“MV”的文件名,但我有问题,因为在UTF-8格式的文件名改为二进制格式。我想知道如果“MV”与该功能有任何关系。 – SDDEvil