【发布时间】:2014-04-18 00:29:11
【问题描述】:
我有一个任务:我有一个包含许多文本文件的目录。每个文件有很多行。每行都有 Tab 删除字段。我必须通过将第一个字段中的值与另一个文本文件中的值进行比较来排除该文件中的某些行。我必须将那些“坏”行复制到一个新的“坏”文件中。我必须将“好”行(不匹配)复制到另一个“好”文件。最后我应该有很多新文件(“好”和“坏”)。换句话说,脚本应该解析目录中的每个文件,将每一行与另一个文件中的值进行比较,如果匹配,则将该行复制到新文件中。 我是这样写的:
import csv
import sys
import os
prefix = 'dna'
goodFiles = []
badFiles = []
fileList = os.listdir(sys.argv[1])
for f in fileList:
absFile = os.path.join(os.path.abspath(sys.argv[1]), f )
newBadF = "BADFile" + "_" + f
badFile = open(newBadF,'w')
newGoodF = "GOODFile" + "_" + f
goodFile = open(newGoodF,'w')
resultList = open(sys.argv[2], 'rb')
convertList = list(resultList)
with open(absFile, 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter='\t')
for row in reader:
for field in convertList:
if row[0].lower() == field.strip():
badFile.writelines('"%s"\n' % row)
next
else:
goodFile.writelines('"%s"\n' % row)
next
我的脚本不起作用 :) 即它生成的文件中每一行都是这样的列表: "['342', '343', '344', '345', '346', '347', '348', '349', '350']" 而原始文件具有不同的格式,即它没有逗号,它没有 '[' 和 ']' 我的问题:如何修复它并获得与原始文件格式相同的新文件? 谢谢
【问题讨论】: