我试图从一堆文本文件中写入包含字符串的所有行。这是我的密码:
import os
import glob
import csv
import re
#Defining Keyword
keyword = '2012-07-02'
#Code to merge all relevant LOG files into one file and insert
with open('Combined-01022012.txt' , 'w', newline = '') as combined_file:
csv_output = csv.writer(combined_file)
for filename in glob.glob('FAO_Agg_2012_Part_*.txt'):
with open(filename, 'rt', newline = '') as f_input:
#with gzip.open((filename.split('.')[0]) + '.gz', 'rt', newline='') as f_input:
csv_input = csv.reader(f_input)
for row in csv_input:
row.insert(0, os.path.basename(filename))
try:
if keyword in row[2]:
csv_output.writerow(row)
#row.insert(0, os.path.basename(filename))
#csv_output.writerow(row)
except:
continue
continue
一切似乎都是正确的,代码运行,但没有得到写在我的文本文件。会出什么问题
你的主要问题是:
实际上,您正在插入当前文件的父文件夹名作为行的第一个条目,然后在下一行检查该条目(
row[0]
)是否包含您的keyword
。除非父文件夹包含您的keyword
(2012-07-02
),否则该条件永远不会计算为True
。我会把它混淆为:而且,使用blank
except
是一个非常非常糟糕的主意。如果要捕获特定的异常,请在except
子句中定义它相关问题 更多 >
编程相关推荐