如何用西里尔字符重命名文件,替换西里尔字母?
How can I rename files with Cyrillic characters, replacing the Cyrillic alphabet?
我有一个包含 100 多个 mp3 文件的文件夹。
他们尊重这种模式:'000. MSK_NAME.mp3
'
我有一个代码可以重命名我的所有文件,而且几乎可以正常工作。
此外,当文件名包含一些西里尔字符时,我还遇到了一些麻烦。
For example:
/音乐:
'''
011. ?????? - ? ?? ???? ??? ???? (Dima Flash.mp3
012. ?????? feat. ?????? ??????? - ???????? (DJ Shtopor & DJ Oleg Petroff Remix).mp3
018. MarQ Markuz - ?????? (DJ A.G. RnDeep Remix).mp3
026. Serebro - ?????????? (DJ Denis Rublev & DJ Anton Remix).mp3
027. Samoel feat. ?????? - ????????????? ????? (Oleg Perets & Alexey Galin Remix) .mp3
029. 5sta Family - ????? (Tony Sky Sax Remix) .mp3
030. ???? ???? - ????? ????? (Dj Jurbas Nu-Disco Mix ).mp3
036. Quest Pistols - ????? ????? (DJ Denis Rublev & DJ Timur Remix).mp3
037. Serebro - ?????????? (Mickey Martini & Alexx Slam Remix).mp3
041. ??? - ???? ? ???? (Tony Sky Remix).mp3
'''
renamer.py:
# -*- coding: utf-8 -*-
import os
folder = "C:\users\myuser\desktop\musics"
for item in os.listdir(folder):
item2 = item[5:]
path = folder + "\" + item
try:
renamed = folder + "\" + item2
os.rename(path, renamed)
except:
#how am I supposed to create converted a filename without these Cyrillic characters ?
#i think it has something to do with using the translit() function from transliterate library
continue
print "Done."
或者也许我应该像这样更改除外部分:
except:
renamed2 = translit(path, 'ru', reversed=True)
os.rename(path, renamed2)
所以...
- 我应该如何创建没有这些西里尔字符的转换文件名?
有人可以告诉我使用 translit()
为 os.rename()
方法创建有效文件名的正确方法吗?
也许是这样的:
print translit(u"Лорем ипсум долор сит амет", 'ru', reversed=True)
# Output: Lorеm ipsum dolor sit amеt
但是在遍历文件夹中的文件时...
答案:
经过进一步搜索,我找到了以下解决方案:
已将 folder = "C:\Users\myuser\Desktop\musics"
更改为 folder = u"C:\Users\myuser\Desktop\musics"
将以下代码添加到我的 except:
部分。
修复:
except:
newName = translit(item, 'ru', reversed=True)
renamed2 = folder + "\" + newName
os.rename(path, renamed2)
代码:
# -*- coding: utf-8 -*-
import os
from transliterate import translit
folder = u"C:\Users\myuser\Desktop\musics"
for item in os.listdir(folder):
item2 = item[:]
path = folder + "\" + item
try:
renamed = folder + "\" + item2
os.rename(path, renamed)
except:
newName = translit(item, 'ru', reversed=True)
renamed2 = folder + "\" + newName
os.rename(path, renamed2)
print "done."
我有一个包含 100 多个 mp3 文件的文件夹。
他们尊重这种模式:'000. MSK_NAME.mp3
'
我有一个代码可以重命名我的所有文件,而且几乎可以正常工作。 此外,当文件名包含一些西里尔字符时,我还遇到了一些麻烦。
For example:
/音乐:
'''
011. ?????? - ? ?? ???? ??? ???? (Dima Flash.mp3
012. ?????? feat. ?????? ??????? - ???????? (DJ Shtopor & DJ Oleg Petroff Remix).mp3
018. MarQ Markuz - ?????? (DJ A.G. RnDeep Remix).mp3
026. Serebro - ?????????? (DJ Denis Rublev & DJ Anton Remix).mp3
027. Samoel feat. ?????? - ????????????? ????? (Oleg Perets & Alexey Galin Remix) .mp3
029. 5sta Family - ????? (Tony Sky Sax Remix) .mp3
030. ???? ???? - ????? ????? (Dj Jurbas Nu-Disco Mix ).mp3
036. Quest Pistols - ????? ????? (DJ Denis Rublev & DJ Timur Remix).mp3
037. Serebro - ?????????? (Mickey Martini & Alexx Slam Remix).mp3
041. ??? - ???? ? ???? (Tony Sky Remix).mp3
'''
renamer.py:
# -*- coding: utf-8 -*-
import os
folder = "C:\users\myuser\desktop\musics"
for item in os.listdir(folder):
item2 = item[5:]
path = folder + "\" + item
try:
renamed = folder + "\" + item2
os.rename(path, renamed)
except:
#how am I supposed to create converted a filename without these Cyrillic characters ?
#i think it has something to do with using the translit() function from transliterate library
continue
print "Done."
或者也许我应该像这样更改除外部分:
except:
renamed2 = translit(path, 'ru', reversed=True)
os.rename(path, renamed2)
所以...
- 我应该如何创建没有这些西里尔字符的转换文件名?
有人可以告诉我使用 translit()
为 os.rename()
方法创建有效文件名的正确方法吗?
也许是这样的:
print translit(u"Лорем ипсум долор сит амет", 'ru', reversed=True)
# Output: Lorеm ipsum dolor sit amеt
但是在遍历文件夹中的文件时...
答案:
经过进一步搜索,我找到了以下解决方案:
已将
folder = "C:\Users\myuser\Desktop\musics"
更改为folder = u"C:\Users\myuser\Desktop\musics"
将以下代码添加到我的
except:
部分。
修复:
except:
newName = translit(item, 'ru', reversed=True)
renamed2 = folder + "\" + newName
os.rename(path, renamed2)
代码:
# -*- coding: utf-8 -*-
import os
from transliterate import translit
folder = u"C:\Users\myuser\Desktop\musics"
for item in os.listdir(folder):
item2 = item[:]
path = folder + "\" + item
try:
renamed = folder + "\" + item2
os.rename(path, renamed)
except:
newName = translit(item, 'ru', reversed=True)
renamed2 = folder + "\" + newName
os.rename(path, renamed2)
print "done."