How do I convert a .tsv to .csv?

后端 未结 4 2067
旧时难觅i
旧时难觅i 2020-12-17 00:46

Trying to convert a .tsv to a .csv. This:

import csv

# read tab-delimited file
with open(\'DataS1_interactome.tsv\',\'rb\') as fin:
    cr = csv.reader(fin         


        
相关标签:
4条回答
  • 2020-12-17 01:28
    import pandas as pd 
    tsv_file='name.tsv'
    csv_table=pd.read_table(tsv_file,sep='\t')
    csv_table.to_csv('new_name.csv',index=False)
    

    We can use the above code to convert the .tsv file to .csv file

    0 讨论(0)
  • 2020-12-17 01:30

    While attempting to write to the CSV file, it encounters a token where it has to insert an escape character. However, you have not defined one.

    Dialect.escapechar

    A one-character string used by the writer to escape the delimiter if quoting is set to QUOTE_NONE and the quotechar if doublequote is False. On reading, the escapechar removes any special meaning from the following character. It defaults to None, which disables escaping.

    Source: https://docs.python.org/2/library/csv.html#csv.Dialect.escapechar

    Example code:

    # write comma-delimited file (comma is the default delimiter)
    with open('interactome.csv','wb') as fou:
        cw = csv.writer(fou, quotechar='', quoting=csv.QUOTE_NONE, escapechar='\\')
        cw.writerows(filecontents)
    
    0 讨论(0)
  • 2020-12-17 01:33

    TSV is a file type where fields are separated by tab. If you want to convert a TSV into a CSV (comma separated value) you just need to do a find and replace from TAB to COMMA.

    Update:
    As pointed out by don-roby, "There might be commas in the tsv", for that we use a regex to escape all the csv special characters as defines by rfc4180.

    i.e.:

    import re
    tsv = open('tsv.tsv', 'r')
    fileContent =  tsv.read()
    appDesc = re.sub("""(?ism)(,|"|')""", r"\\\1", appDesc) # escape all especial charaters (" ' ,) rfc4180
    fileContent = re.sub("\t", ",", fileContent) # convert from tab to comma
    csv_file = open("csv.csv", "w")
    csv_file.write(fileContent)
    csv_file.close()
    
    0 讨论(0)
  • 2020-12-17 01:37
    import sys
    import csv
    
    tabin = csv.reader(open('sample.txt'), dialect=csv.excel_tab)
    commaout = csv.writer(open('sample.csv', 'wb'), dialect=csv.excel)
    
    for row in tabin:
      commaout.writerow(row)
    
    0 讨论(0)
提交回复
热议问题