2013-11-27 4 views
0

내가 전체 경로를 사용하여 파일을 열려고하고있다,하지만 난 파일의 전체 이름, 그 안에서 단지 고유 한 문자열을 모른다.열기 파일

분명히 원시 문자열과 함께 와일드 카드를 사용하려고하기 때문에 이것은 분명히 작동하지 않습니다. 나는 'R'로 이전 없이 파일 경로를 사용하려고 과거에 많은 문제가 있었다, 그래서 나는 불완전한 파일 이름을 처리하는 가장 좋은 방법 모르겠어요. 원시 문자열 표기법을 잊어 버리고 파일 경로에 '\\\\'를 사용해야합니까? 질문 코멘트에서

+0

http://docs.python.org/2/library/glob.html 당신이 모르는 파일 이름을 찾아 볼 수있는 가장 좋은 방법은 -'open' 와일드 카드로는 작동하지 않습니다. 또한 DOS 경로 이름에서 백 슬래시를 사용하는 가장 좋은 방법은'os.path.join'을 사용하여 경로를 만드는 것입니다. –

+0

@PeterDeGlopper'path = glob.glob (r'path/* identifier * .txt ')'그럼'doc = open (path,'r ')'이면 어떻게 될까요? – griffsterb

+0

'glob.glob'는 빈리스트를 반환 할 것이므로 반환 값을 직접 열 수는 없습니다. 그러나'paths = glob.glob (...); 만약 경로가 : doc = open (paths [0], 'r')'기본적으로 맞습니다. 'glob'는 당신이 사용하는 파일 분배자를 용서하고있는 것으로 보입니다. –

답변

2

:

import glob 
import os 

i = "identifier" 
basePath = r"C:\my\path" 

filePaths = glob.glob(os.path.join(basePath,'*{0}*.txt'.format(i))) 

# Just open first ocurrence, if any 
if filePaths: 
    print "Found: ", filePaths[0] 
    doc = open(filePaths[0], 'r')