簡體   English   中英

Python 從文本文件的列表中加載列表

[英]Python load list in list from text file

我想從文本文件中加載列表中的列表。 我經歷了很多例子,但沒有解決方案。 這就是我想做的我是 python 的新手

def main()
    mainlist = [[]]
    infile = open('listtxt.txt','r')
    for line in infile:
        mainlist.append(line)

    infile.close()

    print mainlist

`[[],['abc','def', 1],['ghi','jkl',2]]`

但是我想要的是這樣的

[['abc','def',1],['ghi','jkl',2]]

我的清單包含

'abc','def',1
'ghi','jkl',2
'mno','pqr',3

我想要的是當我訪問列表時print mainlist[0]應該返回

'abc','def',1

任何幫助將不勝感激謝謝,

在我看來,你可以這樣做:

from ast import literal_eval
with open('listtxt.txt') as f:
    mainlist = [list(literal_eval(line)) for line in f]

這是確保保留元素類型的簡單方法。 例如一條線:

"foo","bar",3

將被轉換為2個字符串和一個整數。 當然,行本身需要格式化為python元組......由於它的通用性和簡單性,這可能不是最快的方法。

也許這樣的事情。

mainlist = []
infile = open('listtxt.txt','r')
for line in infile:
    mainlist.append(line.strip().split(','))

infile.close()

print mainlist

您正在使用空列表初始化mainlist列表作為第一個元素,而不是作為空列表本身。 更改:

mainlist = [[]]

mainlist = []

我會嘗試這樣的事情:

with open('listtxt.txt', 'r') as f:
    mainlist = [line for line in f]
mainlist = []
infile = open('filelist.txt', 'r')
for line in infile:
    line = line.replace('\n', '').replace('[', '').replace(']', '').replace("'", "").replace(' ', '')
    mainlist.append(line.split(','))
infile.close()

您可以使用如下所示的json模塊(Python 3.x):

import json

def main()
    mainlist = [[]]
    infile = open('listtxt.txt','r')

    data = json.loads(infile.read())

    mainlist.append(data)

    infile.close()

    print(mainlist)

>>> [[],['abc','def', 1],['ghi','jkl',2]]

您的“listtxt.txt”文件應如下所示:

[["abc","def", 1],["ghi","jkl",2]]

要導出列表,請執行以下操作:

def export():
        with open("listtxt.txt", 'w') as export_file:
             json.dump(mainlist, export_file)

JSON模塊可以加載列表,可在此處找到

我有一個姓氏列表 - 每行一個 - 在我想讀入列表的文本文件中。 這是我的做法(記得去掉換行符)。

surnames = [name.strip("\n") for name in open("surnames.txt", "r")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM