重命名西里尔文文件名

马里奥·古埃尼奇

我想到的是遍历一个文件夹,以检查文件名是否包含任何西里尔字母,如果包含,则将这些文件重命名为其他名称。

我该怎么办?

人们

Python 3
该代码检查传递的字符串的每个字符,是否在西里尔字母块中,并返回True该字符串中是否包含西里尔字符。默认情况下,Python3中的字符串是unicode。该函数将每个字符编码为utf-8,并检查是否产生两个字节来匹配包含西里尔字符的表块。

def isCyrillic(filename):
    for char in filename:            
        char_utf8 = char.encode('utf-8')      # encode to utf-8 

        if len(char_utf8) == 2 \              # check if we have 2 bytes and if the
            and 0xd0 <= char_utf8[0] <= 0xd3\ # first and second byte point to
            and 0x80 <= char_utf8[1] <= 0xbf: # Cyrillic block (unicode U+0400-U+04FF)
            return True

    return False

ord()注释中建议的功能相同

def isCyrillicOrd(filename):
    for char in filename:                  
        if 0x0400 <= ord(char) <= 0x04FF:    # directly checking unicode code point
            return True

    return False

测试目录

cycont
   |---- asciifile.txt
   |---- кириллфайл.txt
   |---- украї́нська.txt
   |---- संस्कृत.txt

测试

import os
for (dirpath, dirnames, filenames) in os.walk('G:/cycont'):
    for filename in filenames:
        print(filename, isCyrillic(filename), isCyrillicOrd(filename))

输出

asciifile.txt False False
кириллфайл.txt True True
украї́нська.txt True True
संस्कृत.txt False False

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Windows中重命名西里尔文文件名

来自分类Dev

CONVMV和西里尔文文件名

来自分类Dev

Git 中的西里尔文文件名

来自分类Dev

西里尔文件名在zip文件中的编码

来自分类Dev

是否可以在 Caja 中使用西里尔文文件名同时使用 TortoiseHG(用于 Mercurial)和 RabbitVCS(用于 Git)?

来自分类Dev

Ubuntu:Perl误读带有西里尔字符的文件名

来自分类Dev

文件名中的Amazon S3和西里尔字母

来自分类Dev

Lubuntu 无法读取带有西里尔字符的文件名

来自分类Dev

命令行重命名韩文文件名

来自分类Dev

命令行重命名韩文文件名

来自分类Dev

Django 看不到西里尔文文件夹名称和文件

来自分类Dev

tar解压缩后,用西里尔字母解码cp866编码的文件名

来自分类Dev

将西里尔文文本转换为 Base64 并返回

来自分类Dev

写入文件时会强烈显示西里尔符号

来自分类Dev

如何在C ++中读取西里尔Unicode文件?

来自分类Dev

如何仅显示西里尔文名称的文件列表?

来自分类Dev

西里尔字母订购

来自分类Dev

西里尔文字验证

来自分类Dev

西里尔字母的要求

来自分类Dev

Bash oneliner重命名文件名

来自分类Dev

重命名现有文件名

来自分类Dev

Excel VBA重命名文件名

来自分类Dev

如何重命名(太长)文件名

来自分类Dev

重命名上载的文件名,JSP

来自分类Dev

重命名现有文件名

来自分类Dev

剥离文件名并重命名

来自分类Dev

Bash:重命名文件名开头

来自分类Dev

在 PowerShell 中重命名文件名

来自分类Dev

为重命名清理文件名