f=open('l.txt','r')
for line in f:
f_list=f.readline().split(",")
if f_list[5]=="":
print(f_list)
该文件是一个列表,第五个元素是" Y"或空白,此循环仅打印每隔一行。为什么要跳过它们?谢谢。
该文件采用这种格式,但还有几百个我试图看到的 如果f [5]为Y或空白
#1,00/00/00,00:00,name,string,Y,string
#2,23/03/17,13:00,gfdfh,fdsdf,,kyl
答案 0 :(得分:1)
答案很简单:在每一行上,列表的第6个元素都是空的!
如果你添加一小段代码来帮助调试:
f=open('l.txt','r')
for line in f:
f_list=f.readline().split(",")
print(f_list[5])
if f_list[5]=="":
print(f_list)
输出结果为:
Y
['#2', '23/03/17', '13:00', 'gfdfh', 'fdsdf', '', 'kyl']
您的代码检查列表的第6个元素是否等于:"" (空字符串)。如果列表的第6个元素为空,则打印出列表,如果它没有打印出列表。
在这种情况下,第一行的六个元素不为空,因此列表不会被打印。
要解决此问题,只需执行以下操作:
f=open('l.txt','r')
for line in f:
f_list=f.readline().split(",")
if f_list[5]=="" or f_list[5]=="Y":
print(f_list)
您忘记检查它是否等于Y!
答案 1 :(得分:0)
对于文件中的每一行
f=open('N:\CA Folder\\firesideFixtures.txt','r')
for f_list in f.read().splitlines():
f_list=f_list.split(",")
if f_list[5]=="":
print(f_list)
输出:
['2', '23/03/17', '13:00', 'gfdfh', 'fdsdf', '', 'kyl']
<强>建议:强>
readline()获取\n
以及读取的行。
实施例,
我的textfile.txt是:
hello this is testing
test line 2
testline3
在这里阅读时,
f = open('textfile.txt','r')
print f.readlines():
['hello this is testing\n', 'test line 2\n', '\n', 'testline3\n']
因此,您可以使用
print f.read().splitlines()
将给出
['hello this is testing', 'test line 2', '', 'testline3']
希望这有帮助!