从Python中的CSV文件读取
我想从Python中的CSV文件中读取数据,但找不到任何好的在线解决方案。从Python中的CSV文件读取
这是我到目前为止的代码:
import csv
def defTakeOrder():
listAvailable = []
listOrder = input("Type your order in the format:\n'GTIN-8,Quantity...' repeated as necessary.\n If the quanitity is 1, still enter a 1 rather than leaving the space blank.\n")
listOrder = listOrder.split(",")
fileExcel = csv.reader(open("C:\Users\Sean\Documents\Year 12\CS\Summer\Book1.csv", newline = ""), delimiter=" ", quotechar="|")
for i in fileExcel:
listAvailable.append(i)
print(listAvailable)
defTakeOrder()
有人可以帮助我的代码从该读什么书?
在此先感谢
编辑: 很抱歉,但在地球上是什么原因导致这些downvotes?我试图高效地工作,这阻碍了我要求几天,这意味着我现在无法高效工作。有人可以解释是否有一个规则我打破或什么?
您不需要导入任何内容来读取CSV。此代码将读取一个CSV并创建一个列表。列表中的每个元素都是一个行,并且每个子列表中的每个元素都是CSV中的一个元素,因为row.split
将返回一个列表。
file = "C:\Users\Sean\Documents\Year 12\CS\Summer\Book1.csv"
csv = []
with open(file, "r") as text:
for row in text:
csv.append(row.split(","))
您的解析在包含“1,2,3”的行上失败,这是第4列,它有一个逗号。“,5”。这是一个有效的CSV行,并且这种类型的内容是避免编写自己的解析器时的一个很好的理由。无论如何,OP似乎并不想从实际的文件中读取数据。 – jpmc26
我确实需要从实际文件中读取,它是产品数据库的模型。不写你自己的解析器是什么意思?我有点困惑。 – SeanOTRS
@SeanOTRS我的意思是,当以文本格式存储数据并从中读取数据时,您应该*非常强烈地*倾向于使用现有的,众所周知的标准以及这些标准格式的经过良好测试的现有库。这个答案中的“解析器”是'row.split(“,”))',它使用原始文本操作来尝试将行解析为单独的列。我上面的示例演示了尝试在标准的格式良好的CSV数据上被破坏。大多数标准格式都有转义机制,允许您使用格式认为特殊的字符,并且像这样简单的尝试会破坏它们。 – jpmc26
乍看之下,该代码*确实*读取csv并将其放入列表中。有什么具体的破碎? – Will
所以,你的方法有什么问题,它有什么作用,它做什么,不做什么,你期望什么,发生了什么问题,你试过了什么? –
我收到“fileExcel =(...”中的第一个括号和第二个引号中的“delimiter =”“” – SeanOTRS