원하는 경로에 텍스트 파일 생성하기??
조회수 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
댓글 입력