List 将文本文件放入列表中

List 将文本文件放入列表中,list,file,python-3.6,List,File,Python 3.6,这是我的文本文件的组成部分: “文件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():

这是我的文本文件的组成部分: “文件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']

而不是

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)
    filenames_list = line
(它会用一个
字符串
两次覆盖列表
文件名
,因此它最终只会包含最新的一个-
“file2”

使用


添加到列表。

如果文本文件的每个文件名都在单独的一行上,则“file.readlines()”将很容易生成所需的列表

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

您的所有文件名是否都必须像看上去的那样位于同一行上?如果是这样的话,您只需获取第一行,然后将其拆分到列表中即可

filenames_list = open('input.txt',"r").readline().split()
在代码中,“file”变量已经是文本文件中每行的列表。下面的循环在该列表上循环,最终只返回文件中的最后一行。最后,只返回文件最后一行中以空格分隔的值的列表

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

def create_filenames_list(filename):
  return open(filename,"r").readlines()

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

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