2017-03-14 104 views
0

我有以下问题:如何制表符分隔的文本文件转换为csv文件在Python

我想制表符分隔的文本文件转换为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) 

该代码一行写的一切,但我需要的数据是三排为常从文件本身预期。每个数据下面还有一个空行,我不知道为什么。

我希望数据是这种形式:

ROW1行2ROW3

字数据字

字数据字

,而不是

ROW1

字,数据字

字,数据字

谁能帮助我?

+0

是什么问题?你的脚本似乎对我很好。你能包括你的脚本的** actual **输出的几行(不只是“row1 row2 row3”),然后是你想要的格式的相同的几行? – maxymoo

回答

0

试试这个:

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的文本编辑器中创建或编辑的文件。据the Python 3 csv module docs

如果newline=''未指定,嵌入式引述领域内的换行符将无法正确解释,并且在使用上写一个额外的\r将被添加\r\n linendings平台。指定newline=''应始终是安全的,因为csv模块自行执行(universal)换行处理。

+0

thx很多丹! “newline =''”解决了这个问题。 – gHOsTaManTe

+0

不客气,@ gHOsTaManTe - 如果这能解决您的问题,请注意并标记为已接受的答案。 – Dan

相关问题