txt如何转成tsv文件

首先区别这三个:

  • csv文件,每一行中不同的数据用逗号分开, 不包含空格。
  • tsv文件,分隔符号是‘\t’ 而不是csv中的逗号。

我是用的笨方法,先转成csv文件,再转成tsv。有其他更好用的方法可以交流

// txt to csv
import csv
csvFile = open("dev2.csv",'w',newline='',encoding='utf-8') // 我的数据是中文数据集,所以用utf-8
writer = csv.writer(csvFile)
csvRow = []

f = open("dev.txt",'r',encoding='utf8')
for line in f:
    csvRow = line.split()
    writer.writerow(csvRow)
f.close()
csvFile.close()

# 由于在txt中也包含了空格,所以得到的csv文件是根据空格划分的。
# 我的数据集的格式分成了两部分: (一个中文短句:string, 一个标签:int),但是短句中包括了空格,所以这样变换会分成三个或者更多个部分。

# 所以改进代码,将list中的前[:-1]个合并成一个部分。
# 改进后代码如下:
import csv
csvFile = open("dev2.csv",'w',newline='',encoding='utf-8')
writer = csv.writer(csvFile)
csvRow = []

f = open("dev.txt",'r',encoding='utf8')
for line in f:
    csvRow = line.split()
    temp_label = csvRow.pop()  # 得到最后一个元素
    csvRow = ["".join(csvRow),temp_label]  # join合并元素
    print(csvRow)
    writer.writerow(csvRow)
f.close()
csvFile.close()


# # 转成tsv文件
with open('dev2.csv',encoding='utf-8') as f:
    data = f.read().replace(',', '\t')
with open('dev.tsv','w',encoding='utf-8') as f:
    f.write(data)
f.close()

 

你可能感兴趣的:(深度学习探索,机器学习)