#python #list #csv #csvreader
Вопрос:
Я хотел бы спросить, как изменить код для получения выходных данных:
Nigel;UK;19 John;US;22 Carol;Germany;26
нет этого ввода (это список?):
['Nigel', 'UK', '19'] ['John', 'US', '22'] ['Carol', 'Germany', '26']
код:
import csv with open('friends.csv', 'r') as source: reader = csv.reader(source) for line in reader: print(line)
Я думаю, что сейчас существуют какие-то инструкции для этого, но я их не нашел.
Спасибо
Комментарии:
1. попробуйте использовать с open(‘friends.csv’, ‘r’) в качестве источника: reader = source.readlines() для строки в reader: печать(строка)
2. Спасибо, но было бы лучше без свободных строк между каждой строкой.
3. А также необходимость ; между словами вместо ,
4.
print(';'.join(line))
5. так что вы можете использовать
print(line.replace('n', ''))
Ответ №1:
Вы получаете вывод в виде списка, потому что это то, что csv.reader()
делает! Он считывает каждую строку csv-файла, преобразует ее в список с учетом запятых и правил экранирования и возвращает этот список.
Если вас не волнует каждый отдельный элемент csv-файла, просто прочитайте файл как обычный файл:
with open("filename.csv", "r") as f: for line in f: print(line, end="")
end=""
аргумент не позволяет print()
добавлять собственные символы новой строки, так line
как в файле уже есть символ новой строки
В качестве альтернативы вы все равно можете прочитать его в виде csv-файла, но str.join()
полученный список перед его печатью. Используйте это, если вы используете строки csv-файла в качестве списка где-то в другом месте, но вы просто хотите распечатать файл здесь
with open('friends.csv', 'r') as source: reader = csv.reader(source) for line in reader: print(";".join(line))
Ответ №2:
Попробуйте распаковать элементы списка с помощью *
оператора и передать пользовательский разделитель в print
:
import csv with open('friends.csv', 'r') as source: reader = csv.reader(source) for line in reader: print(*line, sep=';')
Результат:
Nigel;UK;19 John;US;22 Carol;Germany;26
Более простым (и более эффективным) подходом было бы прочитать содержимое файла в виде строки, а затем заменить все запятые двоеточием:
with open('friends.csv', 'r') as source: print(source.read().replace(',', ';'))
Обратите внимание, что это предполагает, что содержимое вашего friends.csv
является следующим:
Nigel,UK,19 John,US,22 Carol,Germany,26