我正在尝试格式化一个制表符分隔的txt文件,该文件包含行和列。我试图在写入输出文件时忽略其中有空值的行。我是通过len(list)方法来实现的,如果列表的长度等于列数,那么这一行就被写入输出文件。但是当我检查这些线的长度时,它们都是一样的,即使我去掉了空字符串!非常令人沮丧。。。在
我的代码是:
import sys, os
inputFileName = sys.argv[1]
outputFileName = os.path.splitext(inputFileName)[0]+"_edited.txt"
try:
infile = open(inputFileName,'r')
outfile = open(outputFileName, 'w')
line = infile.readline()
outfile.write(line)
for line in infile:
lineList = line.split('\t')
#print lineList
if '' in lineList:
lineList.remove('')
#if len(lineList) < 9:
#print len(lineList)
#outfile.write(line)
infile.close()
#outfile.close()
except IOError:
print inputFileName, "does not exist."
谢谢你的帮助。当我在交互窗口中创建一个实验列表并在列表中使用if“”时,它会删除它。当我运行代码时,“”仍然存在!在
由于
strip()
调用,以下代码用更少的代码行完成了您的要求,并删除了任何类型的空白行。在编辑: 为了清楚起见,这将读取输入文件的每一行,然后去掉前导空格和尾随空格(制表符、空格等)并将非空行写入输出文件。在
我不认识任何python,但我可以说你似乎没有检查空格字符。那么\r\n在\t的顶部呢?为什么不尝试修剪行并检查它是否=''
我认为您的一个问题是^{} 只删除了元素的第一次出现。你的列表中可能还有更多的空字符串。根据文件:
对于remove all the empty strings from your list,您可以使用列表理解来代替。在
或带有标识函数的^{} (通过传递
^{pr2}$None
作为第一个参数):相关问题 更多 >
编程相关推荐