如何读取随机导入的文本文件并将其存储在列表中

时间:2015-10-31 11:11:23

标签: python list import tkinter

我使用file = askopenfile(filetypes=[("Text files","*.txt")])让用户选择他们要导入的文本文件,并使用file.read()阅读。我已经阅读了其他类似想法的问题,但它们似乎只涵盖了当您知道文件名时会发生什么。我想知道如何读取文本文件并将字符串存储在列表中,我不知道用户将选择导入哪个文件。这就是我到目前为止所做的:

import tkinter
from tkinter.filedialog import askopenfile

file = askopenfile(filetypes=[("Text files","*.txt")])
txt = file.read()
import_list = []

import_list是我想要存储的读取文件。

2 个答案:

答案 0 :(得分:3)

要获取文件内容,您需要将其打开以供阅读(有关完整选项,请参阅Input/Output documentation, section 7.2)。

在您的情况下,您的代码可能如下所示:

import tkinter
from tkinter.filedialog import askopenfile

f = askopenfile(filetypes=[("Text files","*.txt")])

import_list = []

txt = f.read()

import_list.append(txt)
# import_list[-1] now contains txt

# ... any other operations on f.

f.close()

如果你想要的是import_list是一个包含文件中所有行的列表,你可以直接使用readlines()函数:

import_list = f.readlines()

注意:我更改了存储文件名的变量名称' file' to' file_name',因为文件是内置类型,并且以这种方式命名您的变量是遮蔽它(请参阅Documentation, 5.9)。

答案 1 :(得分:2)

txt = file.read()将该内容作为一个字符串存储在txt中。

如果要将此字符串拆分为所有行的列表,请尝试以下操作:

import_list = txt.split('\n')