SORU
25 ŞUBAT 2013, PAZARTESİ


_csv.Hata: alan sınırından daha büyük (131072)

Csv dosyası bir komut dosyası okuma var:

# example from http://docs.python.org/3.3/library/csv.html?highlight=csv dictreader#examples
import csv
with open('some.csv', newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

Ancak, bu bazı csv dosyaları: aşağıdaki hata atar

_csv.Error: field larger than field limit (131072)

CEVAP
25 ŞUBAT 2013, PAZARTESİ


Csv dosyası çok büyük alanları içeren, field_size_limit artış bu nedenle olabilir:

import sys
import csv

csv.field_size_limit(sys.maxsize)

sys.maxsize Python 2 için çalışıyor.x ve 3.x. sys.maxint sadece Python 2 ile çalışmaya devam eder.x (SO: what-is-sys-maxint-in-python-3)

Güncelleme

Geoff işaret ettiği gibi, yukarıdaki kod aşağıdaki hatayı neden olabilir: OverflowError: Python int too large to convert to C long. Bunu aşmak için, aşağıdakileri kullanabilirsinizhızlı ve kirlikod:

import sys
import csv
maxInt = sys.maxsize
decrement = True

while decrement:
    # decrease the maxInt value by factor 10 
    # as long as the OverflowError occurs.

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DancingIsAPassion

    DancingIsAPa

    29 AĞUSTOS 2009
  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • taliajoy18

    taliajoy18

    12 Temmuz 2011