【问题标题】:make a text file into a list将文本文件制作成列表
【发布时间】:2017-06-05 12:11:39
【问题描述】:

这是我的文本文件包含的内容: “文件 1 文件2"

到目前为止,这是我的代码:

def create_filenames_list(filename):
    filenames_list = []
    file = open('input.txt', "r").readlines()
    for line in file:
            filenames_list = line

    return filenames_list.split()
def main():
    filenames_list = create_filenames_list('input.txt')
    print(filenames_list)

我得到的输出: “文件 2” 我的预期是: ['file1', 'file2']

【问题讨论】:

    标签: list file python-3.6


    【解决方案1】:
    def create_filenames_list(filename):
    filenames_list = []
    file = open('input.txt', "r").readlines()
    for line in file:
            filenames_list.append(line)
    
    return filenames_list
    def main():
        filenames_list = create_filenames_list('input.txt')
        print(filenames_list)
    

    【讨论】:

      【解决方案2】:

      代替

          filenames_list = line
      

      (其中 覆盖 列表 filenames_list 两次用 string,所以它最终将只包含 最新的一 - "file2")

      使用

          filenames_list.append(line)
      

      追加到列表中。

      【讨论】:

        【解决方案3】:

        如果您的文本文件的每个文件名都位于单独的行中,那么“file.readlines()”将很容易生成您想要的列表。

        此外,您不需要在循环之前将整个文件读入变量 (file = open('input.txt', "r").readlines())。您可以直接遍历文件对象 (f = open('input.txt',"r"))。

        您的所有文件名是否都必须像看起来那样位于一行?如果是这样,您可以简单地获取第一行,然后将其拆分到列表中。

        filenames_list = open('input.txt',"r").readline().split()
        

        在您的代码中,“文件”变量已经是文本文件中每一行的列表。下面的循环遍历该列表并最终仅返回文件中的最后一行。最后,您仅从文件的最后一行返回一个以空格分隔的值的列表。

        同样,如果您将每个文件名放在文件的单独行上,您的代码可以大大简化:

        def create_filenames_list(filename):
          return open(filename,"r").readlines()
        
        def main():
          filenames_list = create_filenames_list('input.txt')
          print(filenames_list)
        

        【讨论】:

          猜你喜欢
          • 2015-12-30
          • 1970-01-01
          • 2013-09-17
          • 1970-01-01
          • 1970-01-01
          • 2015-08-04
          • 2021-04-30
          • 1970-01-01
          • 2014-09-22
          相关资源
          最近更新 更多