Python _csv Грешка: редът съдържа NULL байт

Това е моят код:

filepath = sys.argv[1]

csvdata = list(csv.reader(open(filepath)))

Как мога да го поправя?

Запазих своя excel файл като csv и получих тази грешка:

_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?

person user8233898    schedule 08.08.2017    source източник
comment
Милиард начина, първо включете проследяването на стека и малко повече информация за вашия код!   -  person Ubdus Samad    schedule 08.08.2017
comment
вероятно не е валиден CSV файл. В най-добрия случай трябва да филтрирате нулевите байтове.   -  person Jean-François Fabre    schedule 08.08.2017
comment
Нулевите байтове празни клетки ли са? Използвам excel файл.   -  person user8233898    schedule 08.08.2017
comment
ако използвате Excel файл, опитайте първо да го експортирате/запишете като csv файл. Работният лист на Excel не е csv файл.   -  person Basya    schedule 08.08.2017
comment
Добре, направих това, сега получих тази грешка _csv. Грешка: знак за нов ред се вижда в поле без кавички - трябва ли да отворите файла в режим на универсален нов ред?   -  person user8233898    schedule 08.08.2017
comment
Може да го отворите като rb, както е споменато тук: stackoverflow.com /questions/24662571/python-import-csv-to-list   -  person Basya    schedule 08.08.2017
comment
Каква версия на Python използвате?   -  person Basya    schedule 08.08.2017
comment
Моля, редактирайте публикацията си, за да добавите грешките, които виждате. Също така, ако вашият CSV файл е текстов файл, моля, покажете как изглеждат няколко реда от него.   -  person GreenMatt    schedule 08.08.2017
comment
Дубликат на stackoverflow.com/questions /4166070/ ?   -  person Michael Dyck    schedule 25.02.2020


Отговори (3)


  1. Excel файл не е csv файл. Първо експортирайте/запазете файла като csv.
  2. Има разлики между версиите на Python относно това дали да се отвори файлът като двоичен или текстов. Това има отношение към начина, по който се обработват новите редове. В Python 2.x отворете като двоичен файл: open(filepath, 'rb')

    В Python 3.x не: open('file.csv', 'r')

    Втората част научих от тази връзка за четене в csv файлове

  3. За някои операционни системи (Mac OS със сигурност) трябва да отворите с режима „rU“ Вижте: тази връзка със същия проблем конкретно в Mac OS

person Basya    schedule 08.08.2017
comment
Все още получавам тази грешка: _csv. Грешка: символът за нов ред се вижда в полето без кавички - трябва ли да отворите файла в режим на универсален нов ред? - person user8233898; 08.08.2017
comment
Мисля, че ще трябва да ни дадете малко повече информация. Python версия. ОПЕРАЦИОННА СИСТЕМА. Примерен текст, който показва проблема (за предпочитане няколко реда, които възпроизвеждат проблема. Кое от предложенията по-горе опитахте? Промениха ли резултатите? - person Basya; 08.08.2017
comment
Опитах това тук (Linux, Python 2.7) с създаден от мен csv файл и нямах проблем. За да разберем проблема, ще ни трябва повече информация - person Basya; 08.08.2017
comment
Използвах Mac OS и опитах всички решения, дадени досега. - person user8233898; 08.08.2017
comment
Да, мисля, че имате нужда от универсалния режим на нова линия. Вижте: stackoverflow.com/questions/6726953/ - person Basya; 08.08.2017
comment
Това помогна ли ви? - person Basya; 09.08.2017
comment
Какво е маса клиенти? Трябва да мога да използвам този скрипт за всеки csv, който получава - person user8233898; 09.08.2017
comment
Не съм сигурен какво имате предвид под насипни клиенти. Ако отговорите тук са ви помогнали, маркирайте отговора, който е разрешил проблемите ви, като приет (квадратчето за отметка горе вляво на отговора). Можете да гласувате за всяка публикация, която изобщо е помогнала, дори повече от една, но можете да приемете само една като отговор. - person Basya; 09.08.2017
comment
В примера лицето използва customerbulk, това файл ли е? Знам как работи този уебсайт, но нито един от отговорите не е разрешил проблема досега, поради което не съм приел нищо като отговор. - person user8233898; 09.08.2017
comment
Благодаря за отбелязването на отговора. Не знам какво е нещото customerbulk, предполагам, че използва някаква библиотека или модул. Свързах се с него поради отговора за „rU“ и обсъждането на това, и MacOS също се споменава там. Какво все още не работи? Казвате, че трябва да мога да използвам този скрипт за всеки csv, който получава, и казвате, че трябва да мога да използвам този скрипт за всеки csv, който получава, така че съм малко объркан... все още ли имате нужда от помощ с нещо ? - person Basya; 09.08.2017

опитайте това (поставете действителното местоположение на csv файла)...

with open('c:\pytest.csv', 'rb') as csvfile:

    data = csv.reader(csvfile)

    mylist = list (data)

    print mylist
person Praful    schedule 08.08.2017
comment
Но трябва да използвам този скрипт за куп csv файлове, така че искам да го направя по-универсален - person user8233898; 09.08.2017
comment
Това беше по-скоро илюстрация как се чете CSV файлът. Можете да вземете стандартния вход на всеки валиден CSV файл и да приложите същата логика. - person Praful; 09.08.2017
comment
Получаване на тази грешка: mylist = list(data) _csv.Error: знак за нов ред се вижда в поле без кавички - трябва ли да отворите файла в режим на универсален нов ред? - person user8233898; 09.08.2017
comment
вижте кода по-долу - отваря диалогов прозорец за избор на файла за четене - person Praful; 09.08.2017

person    schedule
comment
Изхвърлянията на кодове без обяснение рядко са полезни. Stack Overflow е за обучение, а не за предоставяне на фрагменти за сляпо копиране и поставяне. Моля, редактирайте въпроса си и обяснете как отговаря на конкретния зададен въпрос. Вижте Как да отговорите. - person Chris; 24.03.2021