我有txt
输出,我愿意将其转换为CSV
Output(data.txt)
apache_web,/my_storage/nfs/indexes,18452
apache_web,/my_storage/nfs/indexes,0
OR
name_of_bucket:apache_web,bucket_id:/mystorage/nfs/indexes,size:18452
name_of_bucket:apache_web,bucket_id:/mystorage/nfs/indexes,size:0
期待
name_of_bucket,bucket_id,size
apache_web,/my_storage/nfs/indexes,18452
apache_web,/my_storage/nfs/indexes,0
答案 0 :(得分:0)
file = open("data.txt", "r")
String = ""
for line in file:
String += line
file.close()
file = open("data.csv", "a")
file.write(String)
file.close()
答案 1 :(得分:0)
.csv文件是一种纯文本格式,由Excel解释为单元格,因此您可以将该输出写入“.csv”文件扩展名,如下所示:
with open("data.txt", "r") as f:
content = f.readlines()
with open("data.csv", "w+") as csvfile:
csvfile.write("name_of_bucket,bucket_id,size\n")
csvfile.writelines(content)
答案 2 :(得分:0)
假设您有一个名为data.txt
的输入文件,其中包含以下四行,即两种可能的格式:
apache_web,/my_storage/nfs/indexes,18452
apache_web,/my_storage/nfs/indexes,0
name_of_bucket:apache_web,bucket_id:/mystorage/nfs/indexes,size:18452
name_of_bucket:apache_web,bucket_id:/mystorage/nfs/indexes,size:0
以下脚本可以读取每一行,并从每列中删除前缀并将修改后的值写回output.csv
文件:
import csv
header = ['name_of_bucket', 'bucket_id', 'size']
with open('data.txt', 'rb') as f_data, open('output.csv', 'wb') as f_output:
csv_data = csv.reader(f_data)
csv_output = csv.writer(f_output)
csv_output.writerow(header)
for row in csv_data:
row = [cell.replace(r + ':', '') for cell, r in zip(row, header)]
csv_output.writerow(row)
为您提供包含以下内容的output.csv
文件:
name_of_bucket,bucket_id,size
apache_web,/my_storage/nfs/indexes,18452
apache_web,/my_storage/nfs/indexes,0
apache_web,/mystorage/nfs/indexes,18452
apache_web,/mystorage/nfs/indexes,0
首先,它利用Python csv
库自动拆分每行中的条目并创建值列表。接下来,它使用列表推导来删除相应的标头值(附加:
)(如果存在)。接下来,它将修改的条目列表写入新的输出文件。
zip()
用于允许您从多个列表中一次读取一个值,在这种情况下,它从行(cell
)中获取一个条目,以及相应的标头值({{ 1}})它用来做一个字符串r
来用空字符串替换文本,即删除它(如果存在)。
使用Python 2.7.12进行测试