如何在Python中将制表符分隔的文本文件转换为CSV文件

gHO*_*nTe 2 csv python-3.x

我有以下问题:

我想将制表符分隔的文本文件转换为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)
Run Code Online (Sandbox Code Playgroud)

这段代码将所有内容写在一行中,但我需要将数据按照文件本身通常的意图放在三行中。每个数据下方也有一个空白行,我不知道为什么。

我希望数据采用以下形式:

ROW1 行2 ROW3

字数据字

字数据字

代替

第1行

单词,数据,单词

单词,数据,单词

谁能帮我?

小智 5

import pandas
Run Code Online (Sandbox Code Playgroud)

它将制表符分隔符文本文件转换为数据框

dataframe = pandas.read_csv("SentiWS_v1.8c_Positive.txt",delimiter="\t")
Run Code Online (Sandbox Code Playgroud)

将数据框写入CSV

dataframe.to_csv("NewProcessedDoc.csv", encoding='utf-8', index=False)
Run Code Online (Sandbox Code Playgroud)


Dan*_*Dan 4

尝试这个:

\n\n
import csv\n\ntxt_file = r"SentiWS_v1.8c_Positive.txt"\ncsv_file = r"NewProcessedDoc.csv"\n\nwith open(txt_file, "r") as in_text:\n    in_reader = csv.reader(in_text, delimiter = \'\\t\')\n    with open(csv_file, "w") as out_csv:\n        out_writer = csv.writer(out_csv, newline=\'\')\n        for row in in_reader:\n            out_writer.writerow(row)\n
Run Code Online (Sandbox Code Playgroud)\n\n

每个数据下还有一个空行,我不知道为什么。

\n\n

您可能正在使用在基于 Windows 的文本编辑器中创建或编辑的文件。根据Python 3csv模块文档

\n\n
\n

如果newline=\'\'未指定,则嵌入在引用字段中的换行符将无法正确解释,并且在写入时使用衬线的平台上将添加\\r\\n额外的换行符。\\r指定应该总是安全的newline=\'\',因为 csv 模块有自己的(通用)换行符处理。

\n
\n