【问题标题】:Printing the whole list wont show all elements from the txt打印整个列表不会显示文本中的所有元素
【发布时间】:2015-11-09 18:33:51
【问题描述】:

我一直在尝试打印我在第一行打开的整个 txt。前 3 种方法不会打印整个列表,最后一种方法会打印,但我不知道如何格式化它以分离其行中的每个元素。

myList = open("LIST.txt","r").readlines()
#print(*myList, sep='\n')
#for elem in myList:
       # print (elem) 
#print ('\n'.join(myList))
print(myList[0:])

【问题讨论】:

  • 你是什么意思,它们没有显示所有元素?您是否因为输出没有括号之类的东西而感到困惑?
  • 不,输出看起来很好,但没有显示整个列表,只是列表的最后一部分 [:-100] 可以说
  • 那么您还有其他问题,因为注释掉的选项应该可以很好地打印所有元素。 (它们在文件的行之间都会有一堆额外的空白行,但文件中的所有行都应该显示出来。)前面的行是否只是从终端顶部滚动出来?
  • 不,没有行,但是如果我将其打印为 print(myList[0:]) 它会打印所有内容,但我希望将其分隔成行。

标签: python list python-3.x printing


【解决方案1】:

所有这些方法似乎都打印出所有行:

>>> my_list = open("list.txt").readlines()
>>> for elem in my_list:
...     print (elem)
...
First line

Second line

Third line

>>> my_list = open("list.txt").readlines()
>>> for elem in my_list:
...     print (elem)
...
First line

Second line

Third line

>>> print ('\n'.join(my_list))
First line

Second line

Third line

>>> print (''.join(my_list))
First line
Second line
Third line

>>> print(my_list[:])
['First line\n', 'Second line\n', 'Third line\n']

如果myList[0:] 有效,您可以使用join:''.join(myList[0:])。但是,如果您要将线路重新连接在一起,您可能只需要 read 而不是 readlines

>>> print(open("list.txt").read())
First line
Second line
Third line

【讨论】:

  • 如此混乱,我仍然没有从 list.txt 的第一行得到它。我只是有一个带有像这样的字符串元组的txt "SBCOB_BC3219-255|(10)|M" ,在每一行中都有一个字符串,它是从excel复制的。我只想连续打印每个字符串,但对于所有字符串。
  • @fekstefek,也许是您打印它们的控制台窗口正在切断滚动缓冲区的开头?我不确定会发生什么。
  • 好的,这可能是问题所在,为什么会发生这种情况,我该如何避免?
  • @fekstefek:终端/控制台窗口往往有一个有限的缓冲区。该缓冲区的大小实际上取决于您使用的终端程序。您可以通过打印到文件然后稍后检查该文件来完全避免这种情况。
猜你喜欢
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多