Проблема разделения строки с Python - PullRequest
3 голосов
/ 01 июня 2011

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

  • Текстовый файл представляет собой файл данных через запятую

Я сделал следующее:

import fileinput
for line in fileinput.input("sample.txt"):
data = line.strip().split(',')
pass

Это на самом деле должно сделать работу правильно?

Хорошо, теперь сложная часть: у меня есть поле с запятой, как показано ниже:

"(CONTRACTS OF 5,000 BUSHELS)"

используя мой код, скрипт также разделил это поле на 2.

Как я могу попросить python использовать запятую в качестве разделителя, но не тогда, когда они заключены в ""?

Заранее благодарю за ответы

Crak

Ответы [ 3 ]

10 голосов
/ 01 июня 2011

Ваши данные в довольно распространенном формате - значения, разделенные запятыми (CSV). Вместо того, чтобы писать еще один парсер, рассмотрите возможность использования встроенного модуля csv.

5 голосов
/ 01 июня 2011

CSV-файлы должны обрабатываться с csv.

4 голосов
/ 01 июня 2011

Вы можете использовать модуль csv

import csv

with open('sample.txt', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        # each row is a list of items,
        # corresponding to each row in your file,
        # including commas for quoted items
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...