Python 3.x 读取csv文件自动测力仪

Python 3.x 读取csv文件自动测力仪,python-3.x,csv,python-3.6,Python 3.x,Csv,Python 3.6,我有一个小脚本,它读取以管道“|”分隔的csv文件,然后以逗号分隔的形式将其写入另一个文件。它很好用。代码、输入文件和输出文件如下: import csv ifile = "d:\\python\\project\\cars-original.csv" ofile = "d:\\python\\project\\cars.csv" with open(ifile, 'r') as f: reader = csv.reader(f, delimiter='|') with o

我有一个小脚本,它读取以管道“|”分隔的csv文件,然后以逗号分隔的形式将其写入另一个文件。它很好用。代码、输入文件和输出文件如下:

import csv


ifile = "d:\\python\\project\\cars-original.csv"
ofile = "d:\\python\\project\\cars.csv"

with open(ifile, 'r') as f:
    reader = csv.reader(f, delimiter='|')
    with open(ofile, 'w', newline='') as of:
        writer = csv.writer(of, delimiter=',')
        for row in reader:
            writer.writerow(row)

读取|制造|模型|类型|值
读数0 |丰田|普雷维亚|距离| 19.83942
阅读1 |道奇|勇敢|距离| 31.28257

阅读、制作、模型、类型、价值
读数0,丰田,普雷维亚,距离,19.83942
阅读1,道奇,无畏,距离,31.28257

现在我想修改脚本,使其能够自动读取分隔符类型

我在网上找到了几个例子,但当我运行我的时,我得到了一个空白文件作为输出。没有错误,只是空白。不知道我做错了什么

我修改(损坏)的脚本:


在Python documentation()中的示例中,文件指针移动到文件的开头,就在方言检测之后

with open('example.csv', newline='') as csvfile:
    dialect = csv.Sniffer().sniff(csvfile.read(1024))
    csvfile.seek(0)
    reader = csv.reader(csvfile, dialect)

在Python documentation()中的示例中,文件指针移动到文件的开头,就在方言检测之后

with open('example.csv', newline='') as csvfile:
    dialect = csv.Sniffer().sniff(csvfile.read(1024))
    csvfile.seek(0)
    reader = csv.reader(csvfile, dialect)
这项工作:

import csv


ifile = "d:\\python\\project\\cars-original.csv"
ofile = "d:\\python\\project\\cars.csv"


with open(ifile, 'r') as f:
    dialect = csv.Sniffer().sniff(f.readline(), [',', '|'])
    f.seek(0)
    reader = csv.reader(f, dialect)
    with open(ofile, 'w', newline='') as of:
        writer = csv.writer(of, delimiter=',')
        for row in reader:
            writer.writerow(row)
这项工作:

import csv


ifile = "d:\\python\\project\\cars-original.csv"
ofile = "d:\\python\\project\\cars.csv"


with open(ifile, 'r') as f:
    dialect = csv.Sniffer().sniff(f.readline(), [',', '|'])
    f.seek(0)
    reader = csv.reader(f, dialect)
    with open(ofile, 'w', newline='') as of:
        writer = csv.writer(of, delimiter=',')
        for row in reader:
            writer.writerow(row)

您的建议允许写入文件,但分隔符不再更新。输入文件和输出文件都是管道分隔的。您的建议允许写入文件,但分隔符不再更新。输入文件和输出文件都是管道分隔的。