将文本文件中的项添加到列表中

时间:2018-06-05 15:57:10

标签: python input

我想保存列表中的文件选项,如:

options = [
    ["ala", "bala", "ma", "sc"],
    ["fg", "ada", "aas","asd"],
]

此选项适用于测验。对于问题,我能够从文件中逐行获取文本,但是对于选项,这不起作用:

with open('Options.txt', 'r') as k:
    options = k.readlines()

我该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以将每组选项存储为1行,逗号分隔:

# create a file
filename = "Options.txt"
with open(filename, 'w') as file:
    file.write("a,b,c,d\n")
    file.write("4,7,8,9\n")
    file.write("27,k,l,pp\n")

您的文件如下:

a,b,c,d
4,7,8,9
27,k,l,pp

您可以通过以下方式阅读此文件:

# read file in
options =[]
with open(filename, 'r') as file:
    for line in file:
        options.append(line.strip().split(","))

print(options) 

输出:

[['a', 'b', 'c', 'd'], ['4', '7', '8', '9'], ['27', 'k', 'l', 'pp']]

答案 1 :(得分:0)

如果您的Options.txt文件包含如下数据:

ala bala ma sc 
fg ada aas asd
---
--- so on

这样做:

with open('Options.txt', 'r') as k:
lst = []
file_line = k.readline()
while file_line:
    file_line_lst = list(file_line.strip().split())
    lst.append(file_line_lst)
    file_line = k.readline()

答案 2 :(得分:0)

您面临的问题是通过将内容作为一对列表data structures而不是字符串对象拉出来更容易处理。 最简单的方法是重命名options.txt文件options.py并假设此代码在同一目录中运行,它可能看起来像这样。

In [4]: import options as o  

In [5]: gennie = ((o.options[0]+o.options[1]))  

In [6]: type(gennie)  
Out[6]: list  

In [7]: gennie  
Out[7]: ['ala', 'bala', 'ma', 'sc', 'fg', 'ada', 'aas', 'asd']  

In [8]: g = iter(gennie)  

In [9]: while True:  
   ...:     try:  
   ...:         print(g.__next__())  
   ...:     except StopIteration:  
   ...:         break  
   ...:     

输出:
  阿拉
  巴拉
  马
  SC
  FG
  ADA
  AAS
  asd