簡體   English   中英

使用os.rename()重命名帶有特殊字符的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM