반응형
반복하려는 10 개의 파일이있는 폴더가 있습니다. 파일 이름을 인쇄하면 코드가 제대로 작동합니다.
import os
indir = '/home/des/test'
for root, dirs, filenames in os.walk(indir):
for f in filenames:
print(f)
어떤 인쇄 :
1
2
3
4
5
6
7
8
9
10
하지만 루프에서 파일을 열려고하면 IO 오류가 발생합니다.
import os
indir = '/home/des/test'
for root, dirs, filenames in os.walk(indir):
for f in filenames:
log = open(f, 'r')
Traceback (most recent call last):
File "/home/des/my_python_progs/loop_over_dir.py", line 6, in <module>
log = open(f, 'r')
IOError: [Errno 2] No such file or directory: '1'
>>>
루프 내에서도 파일의 전체 경로를 open ()
에 전달해야합니까?
해결 방법
예, 전체 경로가 필요합니다.
log = open(os.path.join(root, f), 'r')
빠른 수정입니다. 주석에서 지적했듯이 os.walk
는 하위 디렉토리로 내려가므로 경로 조인의 기준으로 indir
대신 현재 디렉토리 루트를 사용해야합니다.
참조 페이지 https://stackoverflow.com/questions/11801309
반응형
'파이썬' 카테고리의 다른 글
파이썬 Reading a binary .dat file as an array (0) | 2021.02.11 |
---|---|
파이썬 Python을 사용하여 기존 PDF에 텍스트 추가 (0) | 2021.02.11 |
파이썬 Removing first x characters from string? (0) | 2021.02.11 |
파이썬 I'm trying to use python in powershell (0) | 2021.02.11 |
파이썬 사이트 일치 검색어가 없습니다. (0) | 2021.02.11 |
댓글