파이썬 셀리니움 파일 다운로드
조회수 1031회
파이썬 셀리니움 으로 현재 파일을 다운받으려고 하고 있습니다. import os 를 이용해서 파일 rename 하는 것까지 성공했는데요
파일 이름에 특수문자와 같은 기호가 있는 경우에는 rename 이 먹히지 않네요.. os.rename 에는 replace 가 먹히지 않는 것 같습니다.
4 답변
-
우선 os.rename 은 문제가 없습니다.
문제는 glob 모듈의 사용방법이 잘못되었습니다.
[] 같은 특수문자 처리시에는 glob.escape(pathname) 을 사용해야 합니다.
그러나 glob 모듈은 보통 정규식등을 활용하여 해당 path에서 파일명의 집합을 얻기위해서 사용합니다. 즉 *.txt 하여 해당 디렉토리의 모든 txt 파일을 얻는다던지 하는 경우 입니다.
질문자의 경우처럼 명확한 파일 경로를 알고 있다면 glob는 불필요한 방법입니다.
https://docs.python.org/ko/3/library/glob.html
구체적인 사용방법은 상기 링크를 참조하시기 바랍니다.
-
OS: fedora 29(x86_64), python: 3.7.2 환경입니다.
하기의 경우 문제가 없었습니다.
os.rename("/home/allinux/aaaa[.txt", '/home/allinux/bbbb.txt')
rename 만 테스트하여 문제가 있는 경우를 올려주시기 바랍니다.
-
path = root_dir + "/" + '[알림]2019 .hwp' print(path) for f, filename in enumerate(glob.glob(path)): os.rename(filename, os.path.join(root_dir, 'aaaaa'))
다음과 같은 경우 처리되지 않고 있습니다.
-
질문 드렸었던 특수문자에 대한 이슈는 해결 했습니다.. glob 함수를 사용하지 않고서 파일명에 str 을 추가해 주니 해결되었습니다..
그렇지만,
파일명이 2019년 (수정1)_1.hwp 다음과 같은 경우에 rename 이 되지 않고 있는데요..
path = str(dir + "/" + str(name)) os.rename(dir+"/"+str(name),dir+"/"+str(d))
name : 2019년 (수정1)1.hwp id : aaaa_01 2019년수정1_1.hwp
name 값에서 id 값으로 변경하고자 합니다. 띄어쓰기와 (, ) 를 날려 주려고 하는데요.. 방법이 있을까요?
댓글 입력