簡體   English   中英

Python-無法使用文件名中的特殊字符重命名文件

[英]Python - Unable to rename a file with special characters in the file name

我有一堆mp3文件,它們在第0個索引中以某種方式具有特殊字符。 因此,文件名看起來像這樣-▶今晚孤獨-廣播編輯-.mp3以上

我希望能夠解決此問題。 在python中,當我列出文件時,它顯示如下:

'? Alone Tonight - Radio Edit - Above & Beyond .mp3'

我要做的就是用[2:len(filename)]定義的子字符串重命名此文件。

但是,當我這樣做時:

newfilename = filename[2:len(filename)]
os.rename(filename,newfilename)

我懂了

WindowsError:[錯誤123]文件名,目錄名稱或卷標簽語法不正確

那我有什么選擇呢? Windows似乎無法識別特殊字符。 我可以手動編輯它,但不能以編程方式編輯它。

使用文件的Unicode名稱可能會更好。 要獲取unicode名稱,請將unicode路徑傳遞給os.listdir

for filename in os.listdir(u'/path/to/files'):
    if filename.startswith(u'\u25b6'):
        os.rename(filename, filename[2:])

請注意,使用unicode可能並不總是足以指定文件名(您可能必須對unicode進行規范化),因為一個以上的unicode代碼點序列可以具有相同的外觀和含義。 (請參閱unicode等效 ,以及Ned Batchelder 在該主題上博客文章 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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