使用分隔符将Text.txt文档转换为CSV.CSV



我想从TXT文件创建一个CSV。我有一个文本文件,其中的行(300行+(由反斜杠分隔。我希望每一行都是一个单独的行,每一个反斜杠都是一列单独的新列。

文本文件看起来像:

example 1example 2example 3example 4
test 1test 2test 3test 4

我希望CSV看起来像:

示例1
测试1

这样定义分隔符(转义(:

reader = csv.reader(open("Report.csv"), delimiter="\")

代码:

import csv
with open('Report.txt') as report:
reader = csv.reader(report, delimiter="\")
with open('Report_output.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
for line in reader:
writer.writerow(line)

首先,您需要根据delimeter拆分字符串。您可以使用split运算符或正则表达式来实现这一点。

import csv

with open('file.txt', 'r') as in_file:
stripped = (line.strip() for line in in_file)
lines = (line.split("\") for line in stripped if line)

然后把它写进csv。

with open('report.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerows(lines)

相应地调整代码。概念基本相同。请注意,双反斜杠用于解释转义字符。

如果您只是想将该文本转换为CSV,您可以替换每个""带有"的字符"您将拥有一个有效的CSV文件。

否则,如果你想在重新导出到CSV之前对解析后的数据进行处理,你可以逐行读取文件,并使用split((方法和"&";,然后重新加入并逐行写入,如下所示:

with open('in.txt') as input_file:
with open('out.csv','a') as output_file:
txt_line = input_file.readline()
while txt_line:
cells = txt_line.split("\")

# Do something with each cell...

csv_line = ";".join(cells)

output_file.write(csv_line)
txt_line = input_file.readline()

最新更新