2011-12-29 3 views
3

다음 함수를 사용하여 Python에서 .txt 파일을 열려고합니다.Python에서 .txt 파일 열기

def get_my_string(): 
    """Returns a string of the text""" 
    f = open("/home/Documents/text.txt", 'r') 
    string = str(f.read()) 
    f.close() 
    return string 

"문자열"을 열린 파일의 텍스트 문자열로 지정합니다. 그러나 위 함수를 호출 한 후 "string"은 빈 목록입니다.

+4

이 디렉터 구조가 실제로 존재하며이 파일에 필요한 권한이 있습니까? 그대로, 파일의 문자열 표현을 얻어야합니다. f.read 주위의 str() 호출은 엄청나게 유용하며 anythin 유용하지 않습니다. –

+2

전체 코드를 출력에 붙여 넣으십시오. 이 함수에서'list'를 얻을 수있는 방법은 없습니다. – Avaris

+0

둘 다 옳습니다. 이것은 바보 같은 실수였습니다 (당혹 스러웠습니다). 올바른 사용자로 로그인하지 않았으므로 파일에 액세스 할 수 없습니다. 나는 빈 목록을 반환하는 이전 (실패한) 시도 후에 재정의하지 않았기 때문에 "기사"가 빈 목록으로 반환되었다고 생각합니다. 고마워. –

답변

7
def get_my_string(): 
    """Returns the file inputFn""" 

    inputFn = "/home/Documents/text.txt" 

    try: 
     with open(inputFn) as inputFileHandle: 
      return inputFileHandle.read() 

    except IOError: 
     sys.stderr.write("[myScript] - Error: Could not open %s\n" % (inputFn)) 
     sys.exit(-1) 
+0

파일이 완전히 비어 있으면 파일이 닫히지 않습니다. 'open (inputFn, 'r') with f : return f.next()' –

+0

고마워, 필자는 대답을 적절하게 편집했다. –

+0

-1 (1) 이것은 OP가 원하는 정보가 아닌 첫 번째 행만 읽습니다. (2) IOError가 있으면 자세한 오류 정보를 나타냅니다 (파일이 존재하지 않습니까? 권한을 가지고 있습니까?)? 그리고 sys.exit'을 gratuitously 호출합니다. –

0

당신은 정말 당신은 열기() 함수와 TEXTFILE를 사용하여 TEXTFILE를 열어야합니다, 한 파이썬 파일과 텍스트 파일을 같은 폴더에 저장됩니다로 홈/문서 일부가 필요하지 않습니다 이름을 문자열로 열어서 ("text.txt") 괄호는 필요하지 않지만 그것들과 함께 사용할 수 있습니다.