2017-02-26 1 views
0
나는 다음과 같은 코드를 사용하여 내 디렉토리에있는 파일 이름을 인쇄하려고

[오류 267] 디렉토리 이름이 잘못되었습니다WindowsError 스파이더 2.7

for filename in os.listdir(dir_path): 
WindowsError: [Error 267] The directory name is invalid: 'D:/#/#/#/#.json/*.*' 

나는이 질문이 모호한 경우 내가 사과 그래서 파이썬에 새로운 오전의 json/*.* 오류 메시지가 무엇을 의미하는지 확실입니다.

+0

달성하고자하는 것은 무엇입니까? 어떤 디렉토리에있는 모든'.json' 파일을 나열 하시겠습니까? –

+0

예. 모든 .json 파일이 들어있는 폴더입니다. – Sam

+0

이 폴더의 이름은 어떻게됩니까 (전체 경로)? –

답변

0

디렉토리 D:/#/#/#에 JSON 파일 이외의 파일이 들어 있는지 여부가 확실하지 않으므로 두 가지 답변을 제공해야합니다. 바라건대 그 중 하나가 사용자에게 적용됩니다

  1. 디렉토리는 JSON 파일이 경우

    을 포함, 단순히 dir_path의 끝에서 /#.json을 제거 :

    dir_path = 'D:/#/#/#'  
    for filename in os.listdir(dir_path): 
        print filename 
        f = open(os.path.join(dir_path,filename), 'r') 
    
  2. 디렉토리에 JSON 파일 및 제외 할 기타 파일이 포함되어 있습니다.

    이 경우에는 Python glob 모듈을 사용하는 것이 가장 좋습니다. 디렉토리 경로를 포함 glob.glob에 의해 반환 된 파일 이름

    import glob 
    
    dir_path = 'D:/#/#/#/*.json'  
    for filename in glob.glob(dir_path): 
        print filename 
        f = open(filename, 'r') 
    

    주를, 그래서 우리는 그들에 os.path.join를 사용하지 마십시오

    다음은 폴더 D:/#/#/#.json 모든 파일을 나열해야합니다.

os.listdir은 사용자가 지정한 디렉토리의 모든 파일을 나열합니다. 그러나 그것은 당신이 디렉토리의 이름을 전달하지 않는 것 같아요, 당신은 파일의 이름을 전달하고 있습니다. 디렉터리를 지정하지 않으면 디렉터리의 모든 파일을 어떻게 나열 할 수 있습니까?