원하는 경로에 텍스트 파일 생성하기??

조회수 640회
import glob 

import shutil

import os

import re


dirs = ['DataGathering']


for dir in dirs:


    file_names = glob.glob(os.path.join(dir,'*'))
    file_names = [os.path.basename(name) for name in file_names]
    if not os.path.exists(dir +'_renamed'):
        os.makedirs(dir+'_renamed')
        #os.makedirs(dir+'_renamed/csv')
    root = dir + '_renamed'
    for name in file_names:
        if name.endswith('csv') :
            continue
        print(name)
        rename = re.sub("[\(\[].*?[\)\]]", "",name)



        splitted = rename.split('_')
        package = splitted[2]
        array = splitted[0]
        splitted[0] = package
        splitted[2] = array
        pop_index = [-2] * 5 + [0]
        package = splitted[0]
        print(splitted)
        for index in pop_index :
            splitted.pop(index)

        if not os.path.exists(os.path.join(root,package)):
            os.makedirs(os.path.join(root,package))

        destination = '_'.join(splitted)
        print(splitted,destination)

        if not ('Ang' in name or 'K3D' in name or name.endswith('csv')):
            shutil.copy(os.path.join(dir,name),os.path.join(root,package,destination))

위 코드를 보시면 datagathering_renamed이란 폴더가 생성되고 그 안에 package에 입력된 값으로 여러개의 폴더가 생성되는데 그 각각 생성된 폴더안에 dict이란 텍스트 파일을 전부 생성하고 싶습니다.

예를 들어

makeTxt = os.path.join ({root, package}, "dict.txt")

make = open (makeTxt, "w")

이렇게 저 경로에 dict안에 내용은 상관없고 빈 텍스트 파일이라도 생성하고 싶은데 어떻게 해야 할지 모르겠네요. 예는 그냥 제가 생각해본거고(저건 당연히 에러가 나서,,) 옳은 방법을 가르쳐주시면 감사하곘습니다.

1 답변

  • 무엇을 하려는지 목적이 없기 때문에 이해가 어렵습니다.

    • 빈파일 만들기

    *nix 에서는 touch 로 빈파일을 만들 수 있습니다.

    ~$ touch empty.txt

    파이썬코드로는 아래와 같이 할 수 있습니다.

    In [1]: import pathlib                                                          
    
    In [2]: pathlib.Path('empty.txt').touch()
    
    • 저게 파일이 생성된다는것은 빈 텍스트 파일을 생성되는건 확인 했는데 원하는 폴더에 모두 생성하는 법을 잘 모르곘습니다 ㅠㅠ 다 찾아봤지만 실행하면 실행시킨 폴더에 그냥 빈 텍스트 파일 하나만 생성되고 제가 원하는 대로 안되네요 ㅠㅠ 김한 2019.5.17 16:30
    • 무엇을 하고 싶은건가요? 목적을 적어보세요. 정영훈 2019.5.17 18:39
    • 이것저것다해보고 힘들게 알아냈네요 ㅠ 제가 파이선 한지 1달반이라서 초보거든요 ㅠㅠ 제가 원하는 코드는 file = open (os.path.join (root, package, "dict.txt"), 'w') 이였습니다 즉 생성되는 각 폴더에 dict.txt란 것을 모두 넣고 싶었는데 찾아냈네요 감사드립니다! 김한 2019.5.20 15:19

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)