簡體   English   中英

將文本文件導入python中的2d列表會添加單引號

[英]Importing text file to 2d list in python adds single quotes

我有一個數據庫,其中包含我鳥舍中所有鸚鵡的記錄。 它還包括育種信息。 我最近在python中制作了一個腳本,可以打印出任何特定鳥類的家譜。 但是,我是通過在腳本文件中創建2D列表來實現的。 這意味着我對數據庫所做的任何更改都不會反映在程序中。 為了改善這一點,我將數據導出到txt文件中,希望將該文件作為2D列表導入到我的腳本中。

文本文件表示以逗號分隔的數據,其中第一列是鳥類的名稱,第二列是其母親,第三列是其父親。 例如:

"Myriad","Ruby","Indiana"
"Vanadium","Peeper","Jeckyll"
"Kevin","Vanadium","Manganese"

我已經閱讀了很多有關如何執行此操作的解釋,並且目前正在使用該代碼:

with open("BudgieStock.txt") as textFile:
    birdList = [line.split() for line in textFile]

但是,如果我隨后打印數組,則會在每個列表周圍添加一個額外的單引號:

[[' "Myriad","Ruby","Indiana" '], [' "Vanadium","Peeper","Jeckyll" '], [' "Kevin","Vanadium","Manganese" ']]

這使我的程序停止工作。 我到處都看過,但是找不到為什么發生或如何阻止的任何解釋。

我想要的只是:

[["Myriad","Ruby","Indiana"], ["Vanadium","Peeper","Jeckyll"], ["Kevin","Vanadium","Manganese"]]

當我將列表硬編碼到腳本文件中時,該程序運行良好。 我嘗試使用以下方式刪除單引號:

[t.replace("'", "") for t in birdList]

但是收到錯誤消息,“'列表'對象沒有屬性'替換'”。

如果有人能解釋為什么會這樣以及如何解決它,我將不勝感激。 這是我第一次使用python(C ++背景)導入文件。

line.split()按空格分割。 您想按逗號分隔。

with open("BudgieStock.txt") as textFile:
    birdList = [line.split(',') for line in textFile]

另外,您還需要除去多余的引號。 我建議只將它們完全排除在您的文件之外,但是

with open("BudgieStock.txt") as textFile:
    birdList = [[i.strip("\"") for i in line.split(',')] for line in textFile]

也將擺脫它們。

暫無
暫無

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

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