Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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限制必须是整数_Python_Csv - Fatal编程技术网

python限制必须是整数

python限制必须是整数,python,csv,Python,Csv,我试图运行以下代码,但由于某些原因,我得到了以下错误:“TypeError:limit必须是整数” 读取csv数据文件 错误发生在带星号的行中。我只在csv read语句上方添加了额外的位,因为文件太大,无法正常读取。或者,我可以将该文件从csv更改为文本文件,但我不确定这是否会进一步损坏数据。我实际上看不到任何数据,因为该文件大于2GB,因此打开成本较高 有什么想法吗?我对Python相当陌生,但我真的很想学习更多。我不确定这是否可以作为一个答案,但这里有几点: 首先,csv阅读器会自动为cs

我试图运行以下代码,但由于某些原因,我得到了以下错误:“TypeError:limit必须是整数”

读取csv数据文件 错误发生在带星号的行中。我只在csv read语句上方添加了额外的位,因为文件太大,无法正常读取。或者,我可以将该文件从csv更改为文本文件,但我不确定这是否会进一步损坏数据。我实际上看不到任何数据,因为该文件大于2GB,因此打开成本较高


有什么想法吗?我对Python相当陌生,但我真的很想学习更多。

我不确定这是否可以作为一个答案,但这里有几点:

首先,csv阅读器会自动为csv的每一行缓冲,所以文件大小应该不会太大,2KB或2GB,不管怎样

重要的是字段本身中的列数或数据量。如果这个CSV在每个专栏中都包含战争与和平,那么是的,你在阅读它时会遇到问题


一些潜在的调试方法是运行
print sys.maxsize
,打开python解释器,
import sys,csv
,然后运行
csv.field\u size\u limit(sys.maxsize)
。如果您得到的数据非常少或出现异常,则可能是Python安装不好。否则,请尝试使用更简单的文件版本。可能是第一行,也可能是前几行,只有一列。查看是否可以复制尽可能小的大小写,并消除系统和文件大小的可变性。

在使用Python 2.6的64位Windows 7上,maxInt=sys.maxsize返回9223372036854775807L,从而导致类型错误:调用csv.field_size_limit(maxInt)时,limit必须是整数。有趣的是,使用maxInt=int(sys.maxsize)并没有改变这一点。一个粗略的解决方法是简单地使用csv.field_size_limit(2147483647),这当然会在其他平台上引起问题。在我的例子中,这是一个adquat,用于识别CSV中的损坏值,修复其他应用程序中的导出选项,并消除对CSV.field\u size\u limit()的需要


--最初由用户在此相关的

上发布的内容无法复制。代码在这里编译并没有返回错误。调用csv.field\u size\u limit(sys.maxsize)在什么操作系统上发生这种情况?Windows 7。使用一个名为“Enthound Canopy”的Python IDE,该IDE包含一系列包。目前,csv.field\u size\u limit(maxInt)标记前面提到的限制错误,即使我自己运行它。有没有办法检查当前安装是否正确?+1。我认为这是一个很好的答案,因为这个bug是不可复制的。嗨,乔丹,谢谢你的帮助。我得到了以下代码的一个异常。导入csv csv.field_size_limit(sys.maxsize)除了损坏的安装之外,是否还有其他原因导致上述返回相同类型的错误?@Blackholify,您的异常是什么,在哪一行,sys.maxsize的值是什么?
import sys
import csv

maxInt = sys.maxsize
decrement = True

while decrement:
    decrement = False
    try:
        **csv.field_size_limit(maxInt)**
    except OverflowError:
        maxInt = int(maxInt/10)
        decrement = True

with open("Data.csv", 'rb') as textfile:
    text = csv.reader(textfile, delimiter=" ", quotechar='|')
    for line in text:
        print ' '.join(line)