Как прочитать CSV-файл в Python? - PullRequest
0 голосов
/ 24 октября 2018

Мне нужно прочитать файл csv (с именем CityPop.csv), и у меня есть такой код:

import csv

with open ('CityPop.csv', 'r') as f:
    read_data = f.read()
    for line in f:
        record=line.strip().split(",")
print read_data

f.close()

Но когда я пытаюсь его запустить, ничего не выводится.

Я не уверен, как продолжить;это только приводит к более сложным задачам, которые мне нужно выполнить, что сложно, даже если я не могу понять это.

Ответы [ 5 ]

0 голосов
/ 24 октября 2018
import csv

with open('CityPro.cvs') as f:
    r = csv.reader(f, delimiter=',')
    for line in r:
            print(line)
    f.close()
0 голосов
/ 24 октября 2018

Более простой способ чтения CSV-файлов с использованием библиотеки pandas -

import pandas

df = pandas.read_csv('CityPop.csv')

print(df)

или вы можете попробовать изменить код, как показано ниже -

import csv

with open ('CityPop.csv', 'r') as f:

  read_data = csv.reader(f,delimiter=',')

  for row in read_data:

            print(row)
0 голосов
/ 24 октября 2018

Вы импортировали модуль csv , но никогда не использовали его.Так что попробуйте read_data = csv.reader(f).

0 голосов
/ 24 октября 2018

Предлагаю вам следовать примеру из документации по питону csv module :

import csv
with open('CityPop.csv') as f:
    csv_reader = csv.reader(f, delimiter=', ')
    for row in csv_reader:
        print ', '.join(row)

Анализируя ваш код, есть несколько проблем:

  1. вам не нужно вызывать f.close(), если вы используете оператор with, файл будет автоматически закрыт при выходе из блока with
  2. ваш оператор печати должен идтивнутри блока with, поскольку переменная read_data определена внутри него
  3. , вам нужно будет выполнить итерацию read_data (for line in read_data:), потому что вы уже использовали f.read(), чтобы выполнять итерацию по f ничего не даст
  4. вы перезаписываете record каждый раз, так что я не знаю, почему вы так хотите
0 голосов
/ 24 октября 2018

Попробуйте этот код

import csv

    with open ('CityPop.csv', 'r') as f:
        reader = csv.reader(f, delimiter=",")
        #read_data = f.read()
        for line in reader:
            print(line)
            #record=line.strip().split(",")
    #print (read_data)

    f.close()

РЕДАКТИРОВАТЬ Как сказал Ральф "f.close() не требуется при использовании с блоком"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...