Python删除文件中的中文及中文符号

简介: Python删除文件中的中文及中文符号
#删除中文和中文符号
import os, sys
import re
soupath = "../src"
os.chdir(os.path.abspath(os.path.dirname(sys.argv[0])))
#中文汉字
ChinesePattern = re.compile(u'[\u4e00-\u9FA0]+')
#中文符号
ChineseCharPattern = re.compile(u'[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]+')
def print_files(soupath):
    lsdir = os.listdir(soupath)
    dirs = [i for i in lsdir if os.path.isdir(os.path.join(soupath, i))]
    if dirs:
        for i in dirs:
            print_files(soupath + "/" + i)
    files = [i for i in lsdir if os.path.isfile(os.path.join(soupath, i))]
    for f in files:
        if f.endswith(".cpp"):
            soufilename = soupath + "/" + f
            tmpfile = f.split(".", 1)[0] + "_tmp.cpp"
            os.rename(soupath + "/" + f, soupath + "/" + tmpfile)
            fo2 = open(soufilename, "w+", encoding = "utf-8")
            try:
                fo2.write(parse(soupath + "/" + tmpfile))
            except IOError:
                fo2.close()
                print(soupath + "/" + tmpfile + " failure")
                exit(1)
            else:
                fo2.close()
                os.remove(soupath + "/" + tmpfile)
def parse(filename):
    try:
        fd1 = open(filename, "r", encoding = "utf-8")
        dstr = ""
        while True:
            str = fd1.read(1)
            if not str:
                break
            ChinesePatternMatch = ChinesePattern.search(str)
            ChineseCharPatternMatch = ChineseCharPattern.search(str)
            if not ChinesePatternMatch and not ChineseCharPatternMatch:
                dstr += str
        fd1.close()
    except IndexError:
        print(filename + " error")
        exit(1)
    else:
        return dstr
if __name__ == '__main__':
    print_files(soupath)
相关文章
|
6月前
|
开发者 Python
Python基本语法之符号使用
Python基本语法之符号使用
|
6月前
|
Python
Python教程:@符号的用法
@ 符号在 Python 中最常见的使用情况是在装饰器中。一个装饰器可以让你改变一个函数或类的行为。 @ 符号也可以作为一个数学运算符使用,因为它可以在Python中乘以矩阵。本教程将教你如何使用 Python 的@ 符号。
287 0
|
4月前
|
C++
VS联网加载系统库的符号链接文件PDB方法
VS联网加载系统库的符号链接文件PDB方法
|
5月前
|
安全 IDE Java
【python刷题】leecode官方提示“->“,“:“这些符号是什么意思?什么是Type Hints?
【python刷题】leecode官方提示“->“,“:“这些符号是什么意思?什么是Type Hints?
55 0
|
Python
python字符串切分连接(输入一个包含多个单词的英文句子,单词间以空格分隔,标点符号后跟一个空格。定义一个函数,功能是用指定的符号把单词连接起来。)
python字符串切分连接(输入一个包含多个单词的英文句子,单词间以空格分隔,标点符号后跟一个空格。定义一个函数,功能是用指定的符号把单词连接起来。)
918 0
|
12月前
|
vr&ar Python
Python 符号*的特殊用法
Python 符号*的特殊用法
103 0
python 绘图时显示不同的数学符号alpha,beta,偏导、求和等等
在使用python进行绘图时,当涉及当一些数学计算时,常常需要为我们的x、y轴以及标题添加标签,而一些特殊的数学计算符号往往在键盘上无法找到。特此,为了以后寻找方面,将一些常用的数学计算符号等进行汇总:
python 绘图时显示不同的数学符号alpha,beta,偏导、求和等等
|
Python
2_python基础—格式化符号(输入、输出、转义、结束)
2_python基础—格式化符号(输入、输出、转义、结束)
159 0
2_python基础—格式化符号(输入、输出、转义、结束)
Python删除字符串中的符号
Python删除字符串中的符号
|
程序员 Python
程序员数学基础【一、基础运算符号(整数、普通浮点数运算、逻辑运算)】(Python版本)(二)
程序员数学基础【一、基础运算符号(整数、普通浮点数运算、逻辑运算)】(Python版本)(二)
186 0
程序员数学基础【一、基础运算符号(整数、普通浮点数运算、逻辑运算)】(Python版本)(二)