2017-03-16 1 views
0

많은 * .dat 파일 (프로그램 IDL로 생성)이있는 폴더가 있습니다.Python : * .dat 파일을 * .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 :/사용자 나, 하나 개의 파일을 * .csv 파일로 변환하고 다른 (기존) 폴더에 저장 할 수 있어요

가능한 변수 : /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) 
관련 문제