2016-08-03 4 views
1

По какой-то причине мой код, похоже, не добавляет q, он выводит 0 для q, даже если в файле csv есть 11 строк, все, что я хочу проверить, является ли csv-файл пустым, код не работаю в моем скрипте, но в python-консоли он отлично работает.Какую ошибку я делаю в своем коде?

with open('File.csv', 'r') as FILE: 
    q=0;LS = reader(FILE, delimiter=',') 
    for i in LS: 
     q+=1 
    print q 

Может ли кто-нибудь сказать мне, какую ошибку я делаю? Я действительно смущен.

+0

Что вы подразумеваете под «it prints out for 0»? Каково содержимое вашего CSV-файла? –

+3

Он не отвечает на вопрос, но использует; в python - плохая практика, используйте другую строку. –

+1

Если вы напечатаете 'i' внутри цикла' for', вы можете быстро отладить свой код. Я подозреваю, что 'LS' пуст, и поэтому' q' остается 0. – Ian

ответ

1

i выполняет итерацию по строкам в LS, поэтому, если у вас есть файл с 1 строкой, он будет 1, если у вас есть пустой файл, он будет 0 и т. Д. Я подозреваю, что ваш файл пуст, или открытие не получилось.

+0

нет файла не пуст – user5117999

+0

добавить в цикл некоторые отладочные операторы, такие как 'print i',' print q' и посмотреть, что произойдет. – fritzone

+0

Я его распечатал – user5117999

2

Возможно, имя файла верно и находится в той же папке? Я запустил ваш скрипт с помощью csv-файла, который я быстро сделал (содержимое: 1,2), и он выдал 1, как и ожидалось. Также убедитесь, что ваш примерный код может быть выполнен сам по себе, поэтому включите from csv import reader в будущем.

+0

Да, у него есть эта строка, есть ли другой способ проверить, нет ли csv-файла или нет? – user5117999

+0

Ну вы можете просто прочитать файл как обычный файл, то есть: Fh = открыт («FILE.CSV», «R») для линии в ОМ: печати линии Или просто прочитать файл с, например, Кот. – Zafi