Как я могу удалить вложенные списки, охватывающие все мои элементы в списке? - PullRequest
0 голосов
/ 02 июня 2019

Я читаю в файле .csv в список, и выходной список содержит вложенные списки для каждого строкового элемента. Мне нужно, чтобы мой список содержал только строковые элементы.Я использую модуль CSV неправильно?

import csv
import os

with open(os.path.expanduser("~/Desktop/Tracking_Info/kw_tracking_numbers.csv"), 'r') as tracking:
    reader = csv.reader(tracking)
    TrackList = list(reader)
    print(TrackList)

Ожидаемый результат: ['PL431243161', 'PL431245166', 'PL423032770']

Фактический результат: [['PL431243161'], ['PL431245166'], ['PL423032770']]

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Для файла .CSV, использующего csv.reader, каждый элемент, возвращаемый из итерации устройства чтения, представляет собой последовательность значений с разделителями в элементе.Если у вас есть один столбец, вы получите список с одной вещью для каждой строки.

Ваш файл на самом деле не является .CSV, если в нем нет разделителей.Каждая строка представляет собой одну строку, поэтому просто читайте в строках:

import os

with open(os.path.expanduser("~/Desktop/Tracking_Info/kw_tracking_numbers.csv"), 'r') as tracking:
    TrackList = tracking.read().splitlines()
    print(TrackList)
0 голосов
/ 02 июня 2019

возможно, мы можем изменить код следующим образом:

import csv
import os

with open(os.path.expanduser("~/Desktop/Tracking_Info/kw_tracking_numbers.csv"), 'r') as tracking:
    TrackList = [i[0] for i in csv.reader(tracking)]

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