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