2014-11-14 153 views
-4

对于数据挖掘项目,我需要将80个制表符分隔的文件(每个100 MB)转换为CSV文件。任何人都知道一些在这种情况下可以方便使用的工具。将分隔符分隔为CSV

+0

有很多的工具来做到这一点。您使用什么操作系统? – jmunsch 2014-11-14 20:49:36

+0

感谢您的回复,我正在使用Windows 8.1。或者,如果在其他操作系统中有任何方便的工具,我可以切换。 – shubham90 2014-11-14 20:53:57

+0

如果你不熟悉任何脚本语言,我会建议Open Office Calc:http://stackoverflow.com/questions/2549800/how-to-convert-tsv-to-csv-using-openoffice只要文件没有超过限制?:https://wiki.openoffice.org/wiki/Documentation/FAQ/Calc/Miscellaneous/What%27s_the_maximum_number_of_rows_and_cells_for_a_spreadsheet_file%3F或者尝试安装python并使用'csv'模块。 – jmunsch 2014-11-14 21:11:38

回答

0

下载python:https://www.python.org/downloads/

安装它。

并运行类似于以下内容的脚本。

以下内容作为convert_tsv_to_csv.py或任何在.py结束:

import csv 
with open('C:\\path\to\file','r') as f: 
    tab_file = csv.reader(f, dialect=csv.excel_tab) 

with open('C:\path\to\outfile.csv','w') as g: 
    comma_file = csv.writer(g, dialect=csv.excel) 

for row in tab_file: 
    comma_file.writerow(row) 

更改路径和运行它想:python convert_tsv_to_csv.py

的基本思想: 如果文件很大,通过阅读这些线线。

0

了解您的基本工具。

在任何的UNIX/Linux/OSX系统中,每个下面的命令应该做的伎俩:

sed -i -e 's/\t/,/g' *.csv 
perl -i -p -e 's/\t/,/g' *.csv 

这些执行基本选项卡以逗号替换。如果您的数据包含带有表格或逗号的列,或者为您编写文件名,他们将不会处理引用和转义等内容。请注意,sedperl的语法非常相似...... -i就地编辑,-e执行命令,s///是正则表达式替换的语法。等

无论哪种方式,您的基本Unix工具这份工作是

  1. 极快(以下简称“流编辑器” sed是很好的优化,低级别的C代码)
  2. 方便(只是一些10按键!)
  3. 使用方便,一旦你学会的基础知识(即阅读手册)