这是我的文本文件包含的内容: " file1的 文件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']
答案 0 :(得分:0)
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)
答案 1 :(得分:0)
而不是
filenames_list = line
(使用filenames_list
覆盖 列表 string
两次,因此它最终只包含最新一个 - "file2"
)
使用
filenames_list.append(line)
附加到列表中。
答案 2 :(得分:0)
如果您的文本文件在单独的行上有每个文件名,那么'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)