gpt4 book ai didi

python - 将文本文件导入到python中的二维列表中添加单引号

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:54 25 4
gpt4 key购买 nike

我有一个数据库,其中包含我的鸟舍中所有虎皮鹦鹉的记录。它还包括育种信息。我最近用 python 编写了一个脚本,可以打印出任何特定鸟类的家谱。但是,我通过在脚本文件中创建一个二维列表来做到这一点。这意味着我对数据库所做的任何更改都不会反射(reflect)在程序中。为了改进这一点,我已将数据导出到 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]

但出现错误,“'List'对象没有属性'replace'”。

如果有人能解释为什么会发生这种情况以及如何解决它,我将不胜感激。这是我第一次使用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]

也会摆脱它们。

关于python - 将文本文件导入到python中的二维列表中添加单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31095359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com