首页 > 解决方案 > 如何将空格分隔的数据转换为 csv 格式 - Python

问题描述

我正在尝试在字符串(文件)的前两个空格中添加一个逗号,然后我想在第三个瞬间添加一个分号。我要解决的问题是;通过使用这个 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

已编辑;

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 格式。

我如何实现这一目标???

谢谢

标签: pythonregex

解决方案


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;

函数:加入()

此函数返回一个字符串,它是传递的序列中字符串的串联 - 'seperator'.join(sequence)

编辑:

从文件中读取

with open('filename.txt', 'r') as file:
    print("%s;" % ";".join([line.strip().replace("\t", ",") for line in file.readlines()]))

推荐阅读