本文共 2521 字,大约阅读时间需要 8 分钟。
python过滤文件中错误行的内容
master=input(“请输入你要处理的数据的名字:”)
fh = open(master+”.TextGrid”) #打开输入的文件名不包含后缀 for line in fh.readlines(): #读取文件每行内容 newStr = line.strip() #过滤掉两边的空格 if newStr.startswith(‘text’) == True: #只打印包含text字段的行 mkdir = ‘text = “silent”’ #定义一个变量 if newStr != mkdir: #if 输出非text = “silent” 的行 mkdir1 = ‘text = “sounding”’ #定义一个变量 if newStr != mkdir1: #if 输出非text = “sounding” 的行 mkdir2 = ‘text = “error”’ #定义一个变量 if newStr != mkdir2: #if 输出非text = “error” 的行 print (newStr) else: continue #error的行跳过 else: continue #sounding行跳过 else: continue #silent行跳过 else: continue #非包含text的行跳过python处理硬盘上的语音文件拷贝到别的目录里
import os #调用os python模块
import shutil #调用shutil python模块 dtest=os.path.normpath(‘F:\要处理的数据’) #处理完成数据存放的目录 def all_path(dirname): 定义一个函数 #filelistlog = dirname + “\filelistlog.txt” # 保存文件路径 postfix = set([‘wav’,’WAV’]) # 设置要保存的文件格式 for maindir, subdir, file_name_list in os.walk(dirname): #过滤目录下的所有文件 for filename in file_name_list: #读取过滤出来的文件 apath = os.path.join(maindir, filename) #把文件名以字符串的形式显示出来 #if True: # 保存全部文件名。若要保留指定文件格式的文件名则注释该句 if apath.split(‘.’)[-1] in postfix:# 匹配后缀,只保存所选的文件格式。若要保存全部文件,则注释该句 print (apath) #打印内容 #shutil.copyfile(apath,’F:\ddd’) shutil.copy(apath,dtest ) #复制文件到指定目录 try: #捕捉错误 with open(filelistlog, ‘a+’) as fo: fo.writelines(apath) fo.write(‘\n’) except: pass # 所以异常全部忽略即可if name == ‘main‘:
dirpath = “F:” # 指定根目录 all_path(dirpath)python 处理文件内错误的内容把错误的内容放到指定目录
import shutil
import os path =’C:\Users\ailab\Desktop\ailab’ # 替换为你的路径 dir = os.listdir(path) # dir是目录下的全部文件for i in dir:
if os.path.splitext(i)[1] == ‘.TextGrid’: #输出后缀是TextGrid的文件 #print (i) fh = open(i) #打开TextGrid的文件 for line in fh.readlines(): #读取每行内容 #print (i) newStr = line.strip() #过滤文件内两边的空格 #print (newStr) if newStr.startswith(‘text’) == True: #过滤text的行 mkdir = ‘text = “silent”’ #定义一个变量 if newStr != mkdir: #打印非text = “silent”的行 mkdir1 = ‘text = “sounding”’ #定义一个变量 if newStr != mkdir1: #打印非text = “sounding”的行 mkdir2 = ‘text = “error”’ #定义一个变量 if newStr != mkdir2: #打印非text = “error”的行 # print (newStr) listd = [] #定义一个列表 listd.append(newStr) #读取列表中的元素 print(listd) #打印列表中的内容 fh.close() #关闭文件 if listd: #判断列表是否为空 # if not newStr is None: print(“有错误”) #列表有内容显示有错误 ddd =’C:\Users\ailab\Desktop\ailab\test’ #定义存放的目录 try: #捕捉所有错误 shutil.move(i,ddd) #把有错误的文件移动到指定目录 except BaseException: print (‘文件已存在’) #错误输出文件已存在 else: print (‘以筛选完成’) 没有错误输出以筛选完成 else: print(“数据是正确的”) else: continue else: continue else: continue else: continueelse: continue
转载地址:http://xyqgn.baihongyu.com/