【问题标题】:Converting .txt file to list AND be able to index and print list line by line将 .txt 文件转换为列表并能够逐行索引和打印列表
【发布时间】:2013-03-02 15:34:13
【问题描述】:

我希望能够逐行读取文件,然后在出现提示时(比如用户输入“背景”),它返回 0:24 行,因为这些是 .txt 中与他/她的背景相关的行.

def anaximander_background():
    f = open('Anaximander.txt', 'r')
    fList = []
    fList = f.readlines()
    fList = [item.strip('\n') for item in fList]
    print(fList[:20])

这段代码打印给我的列表如下:

['ANAXIMANDER', '', 'Anaximander was born in Miletus in 611 or 610 BCE.', ...]

我尝试了很多不同的方法(for、if 和 while 循环)并尝试了 csv 导入。

我得到的最接近的结果是能够打印出类似于:

[ANAXIMANDER]
[]
[info]

依此类推,取决于我从 fList 检索到的对象数量。

我真的希望它像我刚刚展示的示例一样打印,但没有列表括号 ([ ])。

如有需要,一定可以澄清。

【问题讨论】:

    标签: python list python-3.x


    【解决方案1】:

    要么遍历列表,要么使用str.join()

    for line in fList[:20]:
        print(line)
    

    print('\n'.join(fList[:20])
    

    第一个单独打印 fList 切片中包含的每个元素,第二个在打印前将行连接成一个新字符串,它们之间有\n 换行符。

    【讨论】:

    • 好极了!!非常感谢!我知道这是一件相对简单的事情,但每当我撞到墙上时,我很容易精神受到阻碍。
    【解决方案2】:

    要打印文件的前 20 行:

    import sys
    from itertools import islice
    
    with open('Anaximander.txt') as file:
        sys.stdout.writelines(islice(file, 20))
    

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      相关资源
      最近更新 更多