html_str
是一个字符串,而不是一个列表。
你可以这样做:
txt='''\
Line 1
line 2
line 3
line 4
last line'''
print txt.rpartition('\n')[0]
或者
print txt.rsplit('\n',1)[0]
可以在文档中看到rpartition和rsplit之间的区别。如果在目标字符串中找不到拆分字符,我会根据我想要发生的情况在其中一个或另一个之间进行选择。
顺便说一句,您可能希望以这种方式打开文件:
with open("fb_remodel.csv",'a') as Html_file:
# blah blah
# at the end -- close is automatic.
with的使用是一个非常常见的 Python 习惯用法。
如果您想要删除最后 n 行的通用方法,可以这样做:
首先创建一个测试文件:
# create a test file of 'Line X of Y' type
with open('/tmp/lines.txt', 'w') as fout:
start,stop=1,11
for i in range(start,stop):
fout.write('Line {} of {}\n'.format(i, stop-start))
然后您可以使用双端队列循环并执行操作:
from collections import deque
with open('/tmp/lines.txt') as fin:
trim=6 # print all but the last X lines
d=deque(maxlen=trim+1)
for line in fin:
d.append(line)
if len(d)<trim+1: continue
print d.popleft().strip()
印刷:
Line 1 of 10
Line 2 of 10
Line 3 of 10
Line 4 of 10
如果你打印 deque d,你可以看到这些行的去向:
>>> d
deque(['Line 5 of 10\n', 'Line 6 of 10\n', 'Line 7 of 10\n', 'Line 8 of 10\n', 'Line 9 of 10\n', 'Line 10 of 10\n'], maxlen=7)