Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中读取CSV文件_Python_Csv - Fatal编程技术网

在Python中读取CSV文件

在Python中读取CSV文件,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

我试图用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()
有人能帮我读一下代码吗

提前谢谢

编辑:
对不起,到底是什么原因导致了这些反对票?我正在努力提高工作效率,但这阻碍了我要求几天的时间,这意味着我现在不能像以前那样高效地工作。有人能解释一下我是否违反了规则或其他什么吗?

阅读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(","))

乍一看,该代码确实读取csv并将其放入列表中。具体的东西坏了吗?那么,你的方法有什么问题,它做了什么,它没有做什么,你期望什么,发生了什么问题,你尝试了什么?我在“fileExcel=(…”中的第一个括号和在“delimiter=”“@Seanoters中的第二个引号中发现语法错误你有一个错位的
因此语法errors@Aaron这是错放的
?您的解析在包含
1,2,3的行上失败,“这是第4列,它有一个逗号。”,5
。这是一个有效的CSV行,这类内容是一个很好的理由,可以避免编写自己的解析器。无论如何,OP似乎不想从实际文件中读取。我确实需要从实际文件中读取,它是一个产品数据库的模型。不编写自己的解析器是什么意思?我有点困惑。@SeanOTRS我的意思是,当以文本格式存储数据并从中读取数据时,您应该非常倾向于使用现有的、众所周知的标准以及现有的、经过良好测试的库来实现这些标准格式。这个答案中的“解析器”是
行。split(“,”)
,它使用原始文本操作尝试将行解析为单独的列。我上面的例子表明,这种尝试在标准、格式良好的CSV数据上是失败的。大多数标准格式都有转义机制,允许您使用该格式认为特殊的字符,以及类似于此中断的简单尝试。