Распечатать CSV-файл со значениями, разделенными запятыми, в указанном порядке - PullRequest
1 голос
/ 11 ноября 2019

У меня есть CSV / TXT-файл, который содержит входные данные, как показано ниже.

a 123,456
b 887
c 198
d 123,456

Я ожидаю нижеприведенный вывод с использованием Python:

a 123
a 456
b 887
c 198
d 123
d 456

Я пытался использоватьи читатели csv и txt и не могли получить ожидаемые результаты.

file = open("tt_xx_20191111_113854.txt","r")

for line in file:

  fields = line.split(",")

print(fields[0])

Я просто получаю последнюю строку в качестве вывода. Я что-то здесь упускаю?

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

как писал @Anshuman, вы получили ошибку намерения. Если вы хотите напечатать поля значений по отдельности, вам нужна секунда для цикла in следующим образом:

s = io.StringIO("123,456\n887\n198\n123,456")

for line in s:
    fields = line.strip().split(",")
    for field in fields:
        print(str(field))

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

123
456
887
198
123
456
1 голос
/ 11 ноября 2019

Ошибка кода в коде. Последняя строка должна быть внутри цикла, а не снаружи. как это -

file = open("tt_xx_20191111_113854.txt","r")
for line in file:
  row, fields = line.split(" ")
  for value in fields.split(","):
      print(row + " " + value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...