그래서 기본적으로 나는 각 하위 디렉토리는 두 개의 이미지, 단어로 시작 하나 포함하도록 내 하위 디렉토리 및 파일 (이미지)을 통해 루프를 시도하고 first
, 하나를 그 단어로 시작됩니다 second
.
내가 뭘하고 싶은 각각의 하위 디렉토리에 I로 시작하는 이미지를 지정하려는 것입니다 first
변수에 img1
, 그 시작 second
에 img2
.
내가 얻은 것은 다음과 같습니다.
경로 = '/ my_path /'
for root, dirs, files in os.walk(path):
for file in files:
if file.startswith('first'):
img1 = numpy.asarray(Image.open(root + '/' + file))
if file.startswith('second'):
img2 = numpy.asarray(Image.open(root + '/' + file))
print 'Image 1 is:'
print img1
print 'Image 2 is:'
print img2
그러나 위의 코드를 실행하면 다음과 같은 결과가 나타납니다.
Image 1 is:
Traceback (most recent call last):
File "test.py", line 17, in <module>
print img1
NameError: name 'img1' is not defined
내가 도대체 뭘 잘못하고있는 겁니까?
감사.
' /my_path/
'로 함수를 호출하고 있습니다 . 그런 다음 '추가 /
'== 루트 ' /my_path/
' '당신을 제공합니다 /my_path//filename
'.
루트 경로를 파일 이름에 결합하는 더 좋은 방법은 다음을 사용하는 것입니다.
img1 = numpy.asarray(Image.open(os.path.join(root,file))
이렇게하면 혼합 된 이중 슬래시 또는 앞 슬래시와 백 슬래시를 피할 수 있습니다. 또한 다른 사람들이 지적했듯이 코드에서 변수를 확실히 사용하려는 경우 조건문 외부에서 정의해야합니다. 그렇지 않으면 정의되지 않을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다