我已经开始学习Python和我stucked一个任务 - 我有10个文本文件,我试图从他们写出两个输出: 输出1应该看起来像 文件夹和文件头 文件夹和文件头 的名字的名字......Python 2.7输出文本文件没有最后一个空白行
输出2应该像 文件夹和文件的名称|文字|文字|文字 文件夹和文件名|文字|文字|文本 ...
虽然我看了很多问题,但我还没有发现,如何删除(或不写)最后一个空行 - 应该总是只有文本。 我试过的所有解决方案(tell(),rstrip(),...)都删除了新行的所有符号,所以我有文件夹和文件头文件夹的名称以及文件头的名称,如 。 Ufortunatelly因为任务的定义,我只允许使用水珠和再,如此有用SYS被禁止我:(
我会很感激有你的帮助,这个任务对我来说是真正艰难的,但现在我做的不知道如何继续:)
感谢您的任何意见,并有一个愉快的一天;)
代码我使用:
import re, glob
file_list = glob.glob('./input/*txt')
for file_name in file_list:
input_file = open(file_name, 'r')
output_1 = open('file_1', 'a')
output_2 = open('file_2', 'a')
for line in input_file:
if re.search(r'\s{2,}\S{4,}\s{1}\S+:.*', line):
output_2.write(file_name.replace('.txt','|') + line)
if re.search(r'\s{3,}\S{3,16}\s+X?\s[A-Z]{3,4}\d?\s+\d{1,3}.*', line):
field = re.findall('\S{3,16}\s{3,}', line) + re.findall('\s{2}\d{1,3}.*', line)
field_join = '|'.join(field)
field_clear = re.sub(r'(\s){2,}', '', field_join)
field_list = re.sub(' ', '|', field_clear, 1)
output_1.write(file_name.replace('.txt','|') + field_list + '\n')
output_2.close()
output_1.close()
input_file.close()
你说rstrip不行?你把结果保存在一个变量中吗?这不是一个就地功能。 – ollien
@ollien - 是的,我试过了,不幸没有成功 – dreammy