我是Python初学者,任务是沿着相同的循环行拆分文档,然后将这些部分安全地保存在不同的文件中。我拆分了行,然后试图把它放在一个列表中的元组中。
f = open(PATENTS, 'r')
text =f.read()
n=0
counter=0
textblock=[]
stext= text.splitlines()
for lines in stext:
if stext[n]!='<?xml version="1.0" encoding="UTF-8"?>':
textblock.append((counter,stext[n]))
else:
counter+=1
n+=1
print counter
print textblock[1][1]
f.close()问题是:
textblock[1][1]它不起作用:
我的计数器起作用,if语句也起作用,有人能给我一个提示吗?
我的文件是一个大文本文件,每个专利都从if语句中使用的行开始。现在我想把专利和其他专利分开。
所以我有一个清单,在某种程度上是这样:
(0,patenttext0),(1,patenttext1).
发布于 2015-04-10 08:18:43
textblock.append((counter,stext[n]))
似乎你在列表中存储了一个元组。
请通过打印这样的列表来找出列表中的内容
print textblock您的列表文本块必须如下所示
[(1,"line1),(2,"line2"),(3,"line3")]这个列表是一个一维列表,你正在使用索引,就像2D数组一样。
所以,请试试textblock1,而不是textblock1,不知道你想要的是什么。但是,查看您的评论似乎需要在列表的所有元组中打印行,如果需要,则需要遍历所有列表并打印行。你应该用这样的循环。
line = ""
for i in range(len(textblock)) :
line=line+textblock[i][1]
print line发布于 2015-04-10 08:22:10
Python从0开始,尝试print textblock[0][0]
您也可以使用
for n in range(len(stext)):
if stext[n]!='<?xml version="1.0" encoding="UTF-8"?>':
textblock.append((counter,stext[n]))
else:
counter+=1而不是
n=0
for lines in stext:
if stext[n]!='<?xml version="1.0" encoding="UTF-8"?>':
textblock.append((counter,stext[n]))
else:
counter+=1
n+=1 这就节省了n的声明和增加。
发布于 2015-04-10 09:35:06
试着改变一下
if stext[n]!='<?xml version="1.0" encoding="UTF-8"?>':至
if lines.strip() !='<?xml version="1.0" encoding="UTF-8"?>':和
textblock.append((counter,stext[n]))至
textblock.append((counter,lines)) # or lines.strip()那你就得知道
https://stackoverflow.com/questions/29556056
复制相似问题