首页 > 解决方案 > rglob 将 CSV 批量转换为 TSV

问题描述

我有一个包含数百个 CSV 的文件夹,我需要将其转换为 TSV 以进行 Postgres 上传。

我写了这个脚本,但是当我运行它时似乎什么也没有发生。任何人都可以看到问题是什么?

import os
import sys
import csv
import pandas as pd
import numpy as np
import pathlib

for file in pathlib.Path().rglob('*.csv'):
    with open(file,'r') as csvin, open(file + ".tsv", 'w') as tsvout:
        csvin = csv.reader(csvin)
        tsvout = csv.writer(tsvout, delimiter='\t')

        for row in csvin:
            tsvout.writerow(row)

标签: python

解决方案


您正在导入熊猫...您可以尝试:

import os
import sys
import csv
import pandas as pd
import numpy as np
import pathlib

for file in pathlib.Path().rglob('*.csv'):
    df = pd.from_csv(str(file))
    df.to_csv(str(file.with_name(file.stem + ‘.csv’)), sep=‘\t’)

推荐阅读