簡體   English   中英

從文本文件將數據作為列表導入

[英]Importing data as list from text files

這似乎是一個簡單的問題,但是我已經上網了,找不到任何東西,所以我們開始吧...

我有一個包含此信息的文本文件:

[['AX34 GFV','Name: John Smith1, Address: x, Number: x'],['AX34 ABC','Name: John Smith2, Address: x, Number: x'],['UH23 HUH','Name: John Smith3, Address: x, Number: x'],['ER54 SDR','Name: John Smith4, Address: x, Number: x'],['FE54 VMR','Name: John Smith5, Address: x, Number: x'],['23FX SDA','Name: John Smith6, Address: x, Number: x'],['AS23 JAS','Name: John Smith7, Address: x, Number: x']]    

我要做的就是讀取此數據,並將其作為列表而不是字符串導入。 目前,這就是我所擁有的...

details = open("details.txt","r")
details = details.read()
details = list(details)
print(details)

但這會接受數據的每個字母,並將其生成為列表...任何簡單的函數可以解決此問題?

也許您想要這樣:

list = []
details = open("details.txt", "r")
line = details.readline()
while(line != ''):
    list.append(line)
    line = details.readline()

print(list)
details.close()

我不太確定這是否只是一行或單獨的行。

但是嘗試.append()

如果您將Python代碼(如此列表)作為字符串,則可以通過eval函數運行它:

>>> eval('[1, "2"]')
[1, '2']

它將返回評估后的Python表達式。 但是要小心,這種方式將執行文件中的代碼。 確保沒有不安全的用戶數據!

>>> import ast
>>> x = "[['AX34 GFV','Name: John Smith1, Address: x, Number: x'],['AX34 ABC','Name: John Smith2, Address: x, Number: x'],['UH23 HUH','Name: John Smith3, Address: x, Number: x'],['ER54 SDR','Name: John Smith4, Address: x, Number: x'],['FE54 VMR','Name: John Smith5, Address: x, Number: x'],['23FX SDA','Name: John Smith6, Address: x, Number: x'],['AS23 JAS','Name: John Smith7, Address: x, Number: x']]  "
>>> ast.literal_eval(x)
[['AX34 GFV', 'Name: John Smith1, Address: x, Number: x'], ['AX34 ABC', 'Name: John Smith2, Address: x, Number: x'], ['UH23 HUH', 'Name: John Smith3, Address: x, Number: x'], ['ER54 SDR', 'Name: John Smith4, Address: x, Number: x'], ['FE54 VMR', 'Name: John Smith5, Address: x, Number: x'], ['23FX SDA', 'Name: John Smith6, Address: x, Number: x'], ['AS23 JAS', 'Name: John Smith7, Address: x, Number: x']]

ast.literal_eval

安全地評估表達式節點或包含Python表達式的Unicode或Latin-1編碼的字符串。 提供的字符串或節點只能由以下Python文字結構組成:字符串,數字,元組,列表,字典,布爾值和無。

嘗試這個:

details = open("details.txt","r")
details = eval(details.read())
print(details)

暫無
暫無

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

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