【问题标题】:Python, add items from txt file into a listPython,将txt文件中的项目添加到列表中
【发布时间】:2011-03-09 16:41:23
【问题描述】:

假设我有一个空列表myNames = []

如何打开每行都有名称的文件并将每个名称读入列表中?

喜欢:

>     names.txt
>     dave
>     jeff
>     ted
>     myNames = [dave,jeff,ted]

【问题讨论】:

    标签: python file-io


    【解决方案1】:

    阅读documentation

    with open('names.txt', 'r') as f:
        myNames = f.readlines()
    

    其他人已经提供了如何摆脱换行符的答案。

    更新

    Fred Larson 在他的评论中提供了一个很好的解决方案:

    with open('names.txt', 'r') as f:
        myNames = [line.strip() for line in f]
    

    【讨论】:

    • open(file, 'r') 更改为 open('names.txt', 'r')file 是一个内置类型,也不应该用作变量名......否则,很好的解决方案。
    • 如果我们想将strip 合并到这个解决方案中,我可能会这样做:myNames = [line.strip() for line in f]
    • @Fred:好主意,如果你想把它写成答案,我会把它从我的中删除。
    • @Felix Kling:谢谢。让我们称之为协作努力。 8v)
    • 使用答案here,您可以在一行中完成所有这些操作:myNames = file('names.txt').read().splitlines()
    【解决方案2】:
    f = open('file.txt','r')
    
    for line in f:
        myNames.append(line.strip()) # We don't want newlines in our list, do we?
    

    【讨论】:

      【解决方案3】:
      names=[line.strip() for line in open('names.txt')]
      

      【讨论】:

        【解决方案4】:
        #function call
        read_names(names.txt)
        #function def
        def read_names(filename): 
        with open(filename, 'r') as fileopen:
            name_list = [line.strip() for line in fileopen]
            print (name_list)
        

        【讨论】:

          【解决方案5】:

          这应该是 map 和 lambda 的好例子

          with open ('names.txt','r') as f :
             Names = map (lambda x : x.strip(),f_in.readlines())
          

          我坚持纠正(或至少改进)。列表推导更加优雅

          with open ('names.txt','r') as f :
              Names = [name.rstrip() for name in f]
          

          【讨论】:

            【解决方案6】:
            Names = []
            for line in open('names.txt','r').readlines():
                Names.append(line.strip())
            

            strip() 在字符串前后删减空格...

            【讨论】:

              【解决方案7】:

              读取文件并将每一行放入列表的pythonic方法:

              from __future__ import with_statement #for python 2.5
              Names = []
              with open('C:/path/txtfile.txt', 'r') as f:
                  lines = f.readlines()
                  Names.append(lines.strip())
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-09-04
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-03-28
                • 2016-04-22
                • 1970-01-01
                相关资源
                最近更新 更多