[英]Renames files with special characters using os.rename()
在Python中,我試圖重命名一些名稱如下的文件:
B-4¨íÐóμ(602)的.dbf
假設這是“ file_list”的第一個元素是我的目錄:
file_list = os.listdir(mydir)
file_list[0]
'B-4???\xa8?\xed\x8d\xd0\x8f\xf3?\xb5(602).dbf'
現在,這與在Windows資源管理器(如上)中看到的文件名大不相同,這可能是以下問題的根源:
os.rename(file_list[0],'myfile.dbf')
WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect
關於如何重命名此文件的任何想法?
問題在於您的文件包含非ASCII字符,無法用普通的Python(字節)字符串正確表示。 您可以通過將Unicode目錄名稱傳遞給listdir
來從Python獲得正確的Unicode名稱; 這將導致listdir
返回Unicode文件名。
例:
file_list = os.listdir(unicode(mydir)) # or e.g. mydir.decode('utf8')
os.rename(file_list[0], u'myfile.dbf')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.