как заставить python печатать весь файл, а не только одну строку

#python #python-3.x #missing-data #readlines

#python #python-3.x #отсутствуют-данные #строки чтения

Вопрос:

У меня есть файл .csv, в котором есть только один столбец чисел, и я хочу прочитать каждое число в столбце и распечатать его в консоли следующим образом:

 1
2
3
4
  

вот код, который я использовал:

 file_reference2 = open("file1.csv", "r")
read_lines1 = file_reference1.readlines()
for line1 in read_lines1:
    print(line1)

file_reference1.close()
  

чего я ожидаю, так это:

 1
2
3
  

в консоли.

Но то, что я получаю, это:

 1 
  

И программа останавливается. Как мне заставить его печатать весь файл?

Комментарии:

1. Где ваш file_reference1 определен? Или это опечатка?

2. Почему вы не ожидаете, что он будет печататься 4 ?

3. Не удается воспроизвести. Это похоже на опечатку с момента вашего присвоения open file_reference2 , но вы используете file_reference1 .

4. Вещи, которые я обычно делаю, публикуя о разборе файла: 0) сузьте проблему до наименьшего объема кода и данных, где проблема все еще воспроизводима, 1) Версия Python, python --version 2) покажите весь файл или его часть, cat /path/to/file 3) покажите весь код, cat /path/to/script.py , 4) покажите результат выполнения кода в командной строке. Это облегчит понимание того, что именно происходит.

Ответ №1:

Вы создаете переменную file_reference2 , но позже вызываете file_reference1.readlines() (обратите внимание на разницу в именах переменных). Вероятно, вы читаете строки из неправильного файла, поскольку этот код хорошо работает для меня, если я изменю эту строку на file_reference2.readlines() вот так:

 file_reference2 = open("file1.csv", "r") 
read_lines1 = file_reference2.readlines() 
for line1 in read_lines1: 
    print(line1)

file_reference2.close()