Как преобразовать разделенные пробелами данные в формат csv - Python - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь добавить запятую в первые два пробела в строке (Файл), а затем хочу добавить точку с запятой в третий момент времени.Проблема, которую я пытаюсь решить:с помощью этой команды RegX result = re.sub("\s", ",", text) возвращается text="example,text,example,".Это, конечно, только заменяет любые пробелы запятой.Как я могу использовать регулярные выражения, чтобы сделать пример ниже?

Файл примера

536924636   www.microsoft.com   http://www.microsoft.com/pkiops/crl/MicW
536924733   www.microsoft.com   http://www.microsoft.com/pkiops/certs/Mi
536925898   crl.microsoft.com   http://crl.microsoft.com/pki/crl/product
536924636   www.microsoft.com   http://www.microsoft.com/pkiops/crl/MicW
536924733   www.microsoft.com   http://www.microsoft.com/pkiops/certs/Mi
536925898   crl.microsoft.com   http://crl.microsoft.com/pki/crl/product
536924636   www.microsoft.com   http://www.microsoft.com/pkiops/crl/MicW
536924733   www.microsoft.com   http://www.microsoft.com/pkiops/certs/Mi

Edited;

536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;536925898,crl.microsoft.com,http://crl.microsoft.com/pki/crl/product(etc..);

В двух словах, я пытаюсь использовать Regex и Python для чтения текста и превращения его в CSVформат.

Как мне этого добиться ???

Спасибо

Ответы [ 2 ]

1 голос
/ 12 апреля 2019
text = """536924636   www.microsoft.com   http://www.microsoft.com/pkiops/crl/MicW
536924733   www.microsoft.com   http://www.microsoft.com/pkiops/certs/Mi
536925898   crl.microsoft.com   http://crl.microsoft.com/pki/crl/product
536924636   www.microsoft.com   http://www.microsoft.com/pkiops/crl/MicW
536924733   www.microsoft.com   http://www.microsoft.com/pkiops/certs/Mi
536925898   crl.microsoft.com   http://crl.microsoft.com/pki/crl/product
536924636   www.microsoft.com   http://www.microsoft.com/pkiops/crl/MicW
536924733   www.microsoft.com   http://www.microsoft.com/pkiops/certs/Mi
"""

print("%s;" % ";".join([line.strip().replace("\t", ",") for line in text.splitlines()]))

Вывод

536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;536925898,crl.microsoft.com,http://crl.microsoft.com/pki/crl/product;536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;536925898,crl.microsoft.com,http://crl.microsoft.com/pki/crl/product;536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;

Функция: join ()

Эта функция возвращает строку, которая является объединениемстроки в переданной последовательности - 'seperator'.join(sequence).

Редактировать:

Чтение из файла

with open('filename.txt', 'r') as file:
    print("%s;" % ";".join([line.strip().replace("\t", ",") for line in file.readlines()]))
0 голосов
/ 12 апреля 2019

(?m)[^\S\r\n]+(?=(?:\S+[^\S\r\n]*)+$)

Я проиллюстрировал код на эта ссылка .

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