[python] 여러 파일을 읽고 쓰는 방법?


Answers

나는 당신이 그리워하는 것이 그 디렉토리에있는 모든 파일들을 검색하는 방법이라고 생각한다. 이렇게하려면 glob 모듈을 사용하십시오. 다음은 확장자가 * .txt 인 모든 파일을 확장자가 * .out 인 파일로 복제하는 예입니다

import glob

list_of_files = glob.glob('./*.txt')           # create the list of file
for file_name in list_of_files:
  FI = open(file_name, 'r')
  FO = open(file_name.replace('txt', 'out'), 'w') 
  for line in FI:
    FO.write(line)

  FI.close()
  FO.close()
Question

이 프로그램을 작성하고 싶습니다 : 폴더에 n 개의 파일이 있습니다. 먼저 한 파일을 읽고 일부 작업을 수행 한 다음 결과를 별도의 파일에 저장하십시오. 그런 다음 두 번째 파일을 읽고 작업을 다시 수행 한 다음 새 두 번째 파일에 결과를 저장하십시오. n 개의 파일에 대해 동일한 절차를 수행하십시오. 프로그램은 모든 파일을 하나씩 읽고 각 파일의 결과를 별도로 저장합니다. 어떻게 할 수 있는지 예제를주세요.




최근에 os.walk () 명령을 배웠고 여기 도움이 될 것입니다. 디렉토리 트리 구조를 따라갈 수 있습니다.

import os
OUTPUT_DIR = 'C:\\RESULTS'
for path, dirs, files in os.walk('.'):
    for file in files:
        read_f = open(os.join(path,file),'r')
        write_f = open(os.path.join(OUTPUT_DIR,file))

        # Do stuff



from pylab import * 
import csv 
import os 
import glob 
import re 
x=[] 
y=[]

f=open("one.txt",'w')

for infile in glob.glob(('*.csv')):
    #   print "" +infile
    csv23=csv2rec(""+infile,'rb',delimiter=',')
    for line in csv23:      
        x.append(line[1])
        #  print len(x)
    for i in range(3000,8000):
        y.append(x[i])
    print ""+infile,"\t",mean(y)
    print >>f,""+infile,"\t\t",mean(y)
    del y[:len(y)]
    del x[:len(x)]



Links



Tags

python python