2016-05-31 96 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