Есть ли способ, которым я могу разобрать одну строку с разделителями-запятыми без использования каких-либо фантазий, таких как csv.reader (..)? Я могу использовать функцию split(',')
, но это не работает, когда допустимое значение столбца содержит запятую. В библиотеке csv есть читатели для разбора CSV-файлов, которые правильно обрабатывают вышеупомянутый специальный случай, но я не могу использовать их, потому что мне нужно разобрать только одну строку. Однако, если Python CSV позволяет разобрать одну строку, то это новость для меня.Разбор одной строки CSV?
5
A
ответ
11
Присмотритесь к документации для csv
модуля, который говорит:
reader(...)
csv_reader = reader(iterable [, dialect='excel']
[optional keyword args])
for row in csv_reader:
process(row)
The "iterable" argument can be any object that returns a line
of input for each iteration, such as a file object or a list. The
optional "dialect" parameter is discussed below. The function
also accepts optional keyword arguments which override settings
provided by the dialect.
Так что, если вам имеют строку:
>>> s = '"this is", "a test", "of the csv", "parser"'
И вы хотите «объект, который возвращает строку вход для каждой итерации », вы можете просто обернуть строку в списке:
>>> r = csv.reader([s])
>>> list(r)
[['this is', 'a test', 'of the csv parser']]
И это, как вы разобрать строку с csv
модулем.
9
Вы все еще можете разобрать одну строку с помощью csv
. Используйте StringIO написать строку buffer (также известный как файлов памяти):
import csv
from StringIO import StringIO
s = "your string"
buff = StringIO(s)
reader = csv.reader(buff)
for line in reader:
print(line)
+0
Для Python 3 используйте 'from io import StringIO' см. [Здесь] (https://docs.python.org/3/library/io.html#text-io) –
Смежные вопросы
- 1. Разбор одной строки
- 2. Разбор строки, подобной CSV-файлу
- 3. ruby CSV повторный синтаксический разбор строки
- 4. Разбор CSV в Powershell из строки?
- 5. TextFieldParser разбор CSV из строки не файл
- 6. Разбор строки csv для объектов Java
- 7. Разбор дополнительные строки в CSV файл
- 8. Форматирование одной строки как CSV
- 9. Удаление одной строки из CSV
- 10. Обработка одной строки файла csv
- 11. Разбор одной строки JSON в android
- 12. разбор одной строки JSON с JQuery
- 13. Разбор одной строки дает два разных значения
- 14. Разбор вложенных столбцов CSV в новые строки CSV
- 15. CSV разбор для Shopify
- 16. Разбор вида csv-файла
- 17. Разбор CSV: краевые случаи
- 18. Javascript, разбор CSV-файла
- 19. Разбор CSV-файлов в PHP
- 20. Разбор строки (.CRT файлы)
- 21. Разбор CSV в Python 101
- 22. VBA - Excel - разбор CSV и повторение каждой строки
- 23. Разбор CSV - случайный выход
- 24. JAVA разбор CSV-файла
- 25. Разбор CSV-файла (python)
- 26. Разбор проблемного .CSV-файла
- 27. Разбор CSV с coldfusion
- 28. Разбор CSV в java
- 29. Разбор CSV в узле
- 30. Разбор txt-файла в csv
Думаю, было бы более элегантно использовать 'iter (s)' как для общего итератора вместо '[s]' (указав список). Но у меня есть мой +1 – RafaelC
. Вероятно, это не сработает, если в строке указаны строки строк внутри значений; Ответ @ alecxe имеет смысл – swooby