Импорт csv на Python в список

У меня есть файл CSV с около 2000 записей.

Каждая запись имеет строку и категорию.

  • формат номера телефона в csv с использованием панд
  • Откройте файл в режиме универсальной новой строки, используя модуль CSV Django
  • Python Pandas Scientific Notation Iconsistent
  • Поток больших обучающих и тестовых файлов в DNNClassifier от Tensorflow
  • ValueError: операция ввода-вывода в закрытом файле
  • Загрузка Numy csv TOO медленнее по сравнению с Matlab
  • This is the first line, Line1 This is the second line, Line2 This is the third line, Line3 

    Мне нужно прочитать этот файл в списке, который выглядит следующим образом:

     List = [('This is the first line', 'Line1'), ('This is the second line', 'Line2'), ('This is the third line', 'Line3')] 

    Как импортировать этот csv в список, который мне нужен, используя Python?

  • Как можно сократить идентификаторы монго для лучшего использования в URL-адресах?
  • Установка docstring в выражение внутри def
  • Применить формат к ячейке после записи в XlsxWriter
  • параметр не поддерживается при вставке int в sqlite
  • Как использовать изображение для фона в tkinter?
  • Как использовать другую версию python во время установки NPM?
  • 8 Solutions collect form web for “Импорт csv на Python в список”

    Используйте модуль csv (Python 2.x):

     import csv with open('file.csv', 'rb') as f: reader = csv.reader(f) your_list = list(reader) print your_list # [['This is the first line', 'Line1'], # ['This is the second line', 'Line2'], # ['This is the third line', 'Line3']] 

    Если вам нужны кортежи:

     import csv with open('test.csv', 'rb') as f: reader = csv.reader(f) your_list = map(tuple, reader) print your_list # [('This is the first line', ' Line1'), # ('This is the second line', ' Line2'), # ('This is the third line', ' Line3')] 

    Версия Python 3.x (by @seokhoonlee ниже)

     import csv with open('file.csv', 'r') as f: reader = csv.reader(f) your_list = list(reader) print(your_list) # [['This is the first line', 'Line1'], # ['This is the second line', 'Line2'], # ['This is the third line', 'Line3']] 

    Обновление для Python3 :

     import csv with open('file.csv', 'r') as f: reader = csv.reader(f) your_list = list(reader) print(your_list) # [['This is the first line', 'Line1'], # ['This is the second line', 'Line2'], # ['This is the third line', 'Line3']] 

    Панда неплохо справляется с данными. Вот один пример, как использовать его:

     import pandas as pd # Read the CSV into a pandas data frame (df) # With a df you can do many things # most important: visualize data with Seaborn df = pd.read_csv('filename.csv', delimiter=',') # Or export it in many ways, eg a list of tuples tuples = [tuple(x) for x in df.values] # or export it as a list of dicts dicts = df.to_dict().values() 

    Одно большое преимущество заключается в том, что pandas автоматически обрабатывает строки заголовков.

    Если вы не слышали о Сиборне , я рекомендую взглянуть на него.

    См. Также: Как читать и писать CSV-файлы с помощью Python?

    Если вы уверены, что на вашем входе нет запятых, кроме как отделить категорию, вы можете прочитать файл по строкам и разбить на, а затем нажать результат в List

    Тем не менее, похоже, что вы смотрите на файл CSV, поэтому вы можете подумать об использовании модулей для него

     result = [] for line in text.splitlines(): result.append(tuple(line.split(","))) 

    Простой цикл будет достаточным:

     lines = [] with open('test.txt', 'r') as f: for line in f.readlines(): l,name = line.strip().split(',') lines.append((l,name)) print lines 

    Несколько увеличивая ваши требования и предполагая, что вас не волнует порядок строк и вы хотите, чтобы они были сгруппированы по категориям, следующее решение может работать на вас:

     >>> fname = "lines.txt" >>> from collections import defaultdict >>> dct = defaultdict(list) >>> with open(fname) as f: ... for line in f: ... text, cat = line.rstrip("\n").split(",", 1) ... dct[cat].append(text) ... >>> dct defaultdict(<type 'list'>, {' CatA': ['This is the first line', 'This is the another line'], ' CatC': ['This is the third line'], ' CatB': ['This is the second line', 'This is the last line']}) 

    Таким образом, вы получаете все соответствующие строки, доступные в словаре по ключевым категориям.

    Далее приведен фрагмент кода, который использует модуль csv, но извлекает содержимое file.csv в список dicts, используя первую строку, которая является заголовком таблицы csv

     import csv def csv2dicts(filename): with open(filename, 'rb') as f: reader = csv.reader(f) lines = list(reader) if len(lines) < 2: return None names = lines[0] if len(names) < 1: return None dicts = [] for values in lines[1:]: if len(values) != len(names): return None d = {} for i,_ in enumerate(names): d[names[i]] = values[i] dicts.append(d) return dicts return None if __name__ == '__main__': your_list = csv2dicts('file.csv') print your_list 
    Python - лучший язык программирования в мире.