我有以下问题:
我想将制表符分隔的文本文件转换为csv文件。文本文件是SentiWS字典,我想用它来进行情感分析(https://github.com/MechLabEngineering/Tatort-Analyzer-ME/tree/master/SentiWS_v1.8c)。
我以前使用的代码如下:
txt_file = r"SentiWS_v1.8c_Positive.txt"
csv_file = r"NewProcessedDoc.csv"
in_txt = csv.reader(open(txt_file, "r"), delimiter = '\t')
out_csv = csv.writer(open(csv_file, 'w'))
out_csv.writerows(in_txt)
此代码将所有内容写入一行,但我需要将数据放在文件本身通常所需的三行中。每个数据下面都有一个空白行,我不知道为什么。
我希望数据采用以下形式:
第1行 第2行 第3行
单词数据字
单词数据字
而不是
ROW1
字,数据字
字,数据字
任何人都可以帮助我吗?
答案 0 :(得分:4)
import pandas
它会将制表符分隔符文本文件转换为数据帧
dataframe = pandas.read_csv("SentiWS_v1.8c_Positive.txt",delimiter="\t")
将数据帧写入CSV
dataframe.to_csv("NewProcessedDoc.csv", encoding='utf-8', index=False)
答案 1 :(得分:2)
试试这个:
import csv
txt_file = r"SentiWS_v1.8c_Positive.txt"
csv_file = r"NewProcessedDoc.csv"
with open(txt_file, "r") as in_text:
in_reader = csv.reader(in_text, delimiter = '\t')
with open(csv_file, "w") as out_csv:
out_writer = csv.writer(out_csv, newline='')
for row in in_reader:
out_writer.writerow(row)
每个数据下面都有一个空白行,我不知道原因。
您可能正在使用在基于Windows的文本编辑器中创建或编辑的文件。根据{{3}}:
如果未指定
newline=''
,则无法正确解释引用字段中嵌入的换行符,并且在写入时使用\r\n
换行符的平台上将添加额外的\r
。指定newline=''
应始终是安全的,因为csv模块会执行自己的(the Python 3csv
module docs)换行处理。