python文件文本处理:删除空白行,删除固定几行,删除固定列
话不多说,上代码
# coding=gbk
# clearBlankline
def clearBlankline(infile,outfile):
infopen=open(infile,'r',encoding='utf-8')
outopen=open(outfile,'w',encoding='utf-8')
lines=infopen.readlines()
for line in lines:
if line.split():
outopen.writelines(line)
else:
outopen.writelines("")
infopen.close()
outopen.close()
print("输入需要被处理的文件,该文件需要在本程序所在目录中")
clearBlankline(input(),"output1.txt")
# clearTheline
with open("output1.txt",encoding='utf-8') as fp_in:
with open('out.txt', 'w',encoding='utf-8') as fp_out:
fp_out.writelines(line for i, line in enumerate(fp_in)if i>2)
# clearnumber
file = open("out.txt", "r") # 以只读模式读取文件
lines = []
for i in file:
lines.append(i) # 逐行将文本存入列表lines中
file.close()
new = []
for line in lines: # 逐行遍历
p = 0 # 定义计数指针
for bit in line: # 对每行进行逐个字遍历
if bit == ":": # 遇到空格时进行处理
new.append(line[8:-1]) # 将line中的8:11字段存入新列表new中,用于写入新的.txt中
break # 处理完一行后跳出当前循环
else:
p = p + 1 # 如果bit不是冒号,指针加一
# 以写的方式打开文件,如果文件不存在,就会自动创建,如果存在就会覆盖原文件
print("输入处理后的文件名")
file_write_obj = open(input(), 'w')
for var in new:
file_write_obj.writelines(var)
file_write_obj.writelines('\n')
file_write_obj.close()
上源文件截图:因为要对类似的文件进行比对查重,所以需要删除空行以及前面一些无用的信息,所以,生成的文件,应该是这样式的~
然后进行行匹配,是不是很方便~(▽)
总结:python真是个好东西,期末复习,告辞!