gpt4 book ai didi

python - 如何使用西里尔字母重命名文件,替换西里尔字母?

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:28 25 4
gpt4 key购买 nike

我有一个包含 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 部分,如下所示:

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

但是在循环文件夹内的文件时...

最佳答案

答案:

经过更多搜索后,我找到了以下解决方案:

  1. 已将 folder = "C:\\Users\\myuser\\Desktop\\musics" 更改为 folder = u"C:\\Users\\myuser\\桌面\\音乐”

  2. 将以下代码添加到我的 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."

关于python - 如何使用西里尔字母重命名文件,替换西里尔字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com