with open("C:\\test\\data1.txt") as f:
data = f.readlines()
tail = data[-10:]
我在文件夹test中有一个文件名data1.txt,当我的程序从文件中读取文件时,它将从文件中读取全部内容,并且仅打印文件中的最后10行。
['这是第21 \ n行,'这是第22 \ n行,'这是第行 数字23 \ n',“这是行号24 \ n”,“这是行号25 \ n”, “这是行号26 \ n”,“这是行号27 \ n”,“这是行 数字28 \ n','这是第29行\ n','这是第30行\ n']
我想用换行符打印文件中的最后10行,但无法说明如何将换行符放入列表数据结构中。
例如: 要像这样打印txt文件(data1.txt):
这是第21行
这是第22行
这是第23行
这是第24行
没有\ n和列表减速度([''])
答案 0 :(得分:2)
已经有很多答案,但是没有人解释这个问题。
\n
是换行符!
为了能够在字符串文字中显示换行符,使用了转义序列\n
,例如:
>>> 'a\nb'
'a\nb'
>>> print('a\nb')
a
b
print
函数会打印字符串,如果将字符串参数传递给它,但是如果将其他对象传递给字符串,则必须首先将其转换为字符串,因此print(x)
是字符串与print(str(x))
相同。
将list
的字符串转换为字符串时,可以通过在其每个项目上调用repr
来完成:
>>> ['a', 'a\nb']
['a', 'a\nb']
>>> str(['a', 'a\nb'])
"['a', 'a\\nb']"
>>> print("['a', 'a\\nb']")
['a', 'a\nb']
现在,如果要打印最后10行,则意味着您应该打印列表中的每个字符串,而不是列表对象本身,例如:
for s in list_of_strings:
print(s)
现在,由于s
已经包含换行符,并且print
本身也添加了换行符,因此您应该删除其中一个换行符以使解决方案完整:
for s in list_of_strings:
print(s.strip('\n'))
或:
for s in list_of_strings:
print(s, end='')
或通过串联列表项来创建一个字符串并打印:
print(''.join(list_of_strings))
答案 1 :(得分:1)
print
的尾巴像这样:
print(*tail, sep='')
sep
参数停止自动空间,该空间通常用作打印项目之间的分隔符。
答案 2 :(得分:1)
最好是一个联接(适用于任何版本)
print(''.join(tail))
答案 3 :(得分:0)
也许这会有所帮助:
f.readlines()[-10:]
这样,您将获得最后10行。
或者只是:
data = f.readlines()[-10:]
for d in data:
print(d) # will print everything on new line