2016-08-10 4 views
0

100 개의 폴더를 만들고 각 폴더에 txt 파일을 만들고 싶습니다. 그리고 몇 가지 조건 때문에 각 텍스트 파일에 다른 것을 쓰고 싶습니다. 폴더를 만들고 각 폴더에 파일을 만들 수 있습니다. 그러나 ('...')을 f :으로 사용하면 각 텍스트 파일에 다른 내용을 쓸 수 없습니다.python - 다른 파일로 작성

다음은 폴더와 파일을 만드는 코드입니다. 그것은 완벽하게 작동합니다.

def createAndFillFolders(): 

    for i in range(100): 
     dir_name = (('/home/pi/Project/folder_%s') % (i)) 
     if os.path.exists(dir_name): # if the folder already exists 
      shutil.rmtree(dir_name) # then overwrite 
     os.makedirs(dir_name) 
     open(os.path.join(dir_name, "file_%s" % (i + 1)), "w") 

하지만 지금 각 파일에 다른 것들을 쓰고 싶다면 제대로 할 방법을 찾을 수 없습니다. 나는 개방과 os.path.join 사용하여 시도하지만 (...)과 "오픈 사용할 때 작동하지 않습니다 :

with open(os.path.join(dire_name,'/file_%s.txt' % (i + 1, i + 1), "w") as #("file_%i.txt" % (i + 1)): 
     ("file_%i.txt" % (i + 1)).write("%i" %(i + 1)) 

내가 코드의 마지막 부분은 completly 거짓 알고 있지만 그것은 도움이 될 수 내가하고 싶은 것을 이해 할 수 있습니다.

것은 그래서 각 folder_i는 "내가"내 기록을 가진 file_i.txt 파일이 있습니다.이 할 수있는 일입니다!

+0

그래서 모든 파일과 폴더를 올바르게 만들 수 있습니까? 당신은 단지 몇 가지 파일을 작성하는 데 도움이 필요합니다. – harshil9968

+1

"동적으로 변수 이름을 지정하는 방법"반 패턴을 사용하여 맵 또는 파일 목록을 재 작성하려는 것 같습니다. 왜 각각의 파일에 대한 핸들을 다른 것으로 부르는 것이 필요한가요? –

+0

f.write ("% i"% (i + 1))'이 (가) f : \ n \ t로 열린 경우 (.....) – JETM

답변

2
def writeToFiles(): 

    for i in range(100): 
     dir_name = (('/home/pi/Project/folder_%s') % (i)) 
     f = open(os.path.join(dir_name, "file_%s" % (i + 1)), "w") 
     f.write(str(i)) 
     f.close() 

을 돕는

감사합니다 그것 나는 당신이 당신의 파일 및 폴더를 만드는 동안이 같은 것을 할 것입니다 만 그것을 위해 그렇게 선호합니다

def createAndFillFolders(): 

    for i in range(100): 
     dir_name = (('/home/pi/Project/folder_%s') % (i)) 
     if os.path.exists(dir_name): # if the folder already exists 
      shutil.rmtree(dir_name) # then overwrite 
     os.makedirs(dir_name) 
     f = open(os.path.join(dir_name, "file_%s" % (i + 1)), "w") 
     f.write(str(i)) 
     f.close() 

당신이 어떤 오류에 직면 알려줘, 또는 어딘가에 붙어있다.

+0

예 @JETM과 동일하게 완벽하게 작동합니다. 감사합니다. –

+0

진드기를 클릭하여 답변을 수락하십시오. – harshil9968