2017-03-16 107 views
0

我有一個包含大量* .dat文件(使用程序IDL創建)的文件夾。我能夠採取一個單一的文件,將其轉換爲* .csv文件並將其保存在不同的(已經存在)的文件夾:Python:如何將* .dat-files保存爲* .csv-files到新文件夾

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:/用戶/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) 

可有人請給我一些建議嗎? 謝謝。

回答

0
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) 
相關問題