【问题标题】:Python: How to save *.dat-files as *.csv-files to new folderPython:如何将 *.dat-files 作为 *.csv-files 保存到新文件夹
【发布时间】:2017-03-16 14:59:04
【问题描述】:

我有一个包含大量 *.dat 文件的文件夹(这些文件是使用 IDL 程序创建的)。我可以获取一个文件,将其转换为 *.csv 文件并将其保存在不同的(已经存在的)文件夹中:

import idlsave
import csv

input_file = idlsave.read("C:/Users/RAW/06211714.dat")
n = input_file["raw"]
with open("C:/Users/CSV/06211714.csv", "w", newline='') as f:
    writer = csv.writer(f)
    writer.writerows(n)

input_file = idlsave.read("C:/Users/RAW/06211714.dat") 显示以下输出:

可用变量:原始类 ['numpy.recarray']

因此,这对于仅获取一个文件来说很好,但我正在寻找一种方法来一次获取所有 *.dat 文件并将它们中的每个文件转换为具有原始名称的 *.csv 文件。 我在想这样的事情,但是没有用:

import glob
for filename in glob.glob("C:/Users/RAW/*.dat"):
for element in filename:
    i = idlsave.read(element)
    n = i["raw"]
    with open("C:/Users/CSV/*.csv", "w", newline='') as f:
        writer = csv.writer(f)
        writer.writerows(n)

有人可以给我一些建议吗? 谢谢。

【问题讨论】:

    标签: csv python-3.6


    【解决方案1】:
    import csv
    import idlsave
    from os import listdir
    from os.path import isfile, join, splitext
    
    dat_folder = "/folder/to/dat/files/"
    csv_folder = "/folder/to/save/new/csv/files/"
    
    onlyfilenames = [f for f in listdir(dat_folder) if isfile(join(dat_folder,f))]
    for fullfilename in onlyfilenames:
        file_name, file_extension = splitext(fullfilename)
        if file_extension == ".dat":
            input_file = idlsave.read(dat_folder + fullfilename)
            n = input_file["raw"]
            with open(join(csv_folder, file_name + ".csv"), "w", newline='') as f:
                writer = csv.writer(f)
                writer.writerows(n)
    

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 1970-01-01
      • 2012-12-01
      • 2021-07-04
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 2020-03-15
      • 2020-09-05
      相关资源
      最近更新 更多