2011-10-09 2 views
2

저는 최신 GAE 기본 파이썬 환경을 사용하고 있습니다.GAE에서 파이썬으로 문자열에 XML 파일을로드하는 방법은 무엇입니까?

isTrue = os.path.exists(path) 
numberGreaterThanZero = os.path.getsize(path) 

하지만이 :

myStrLen = len(open(path)) 

이 오류를 제공합니다 : 구글에서 해당 오류에 대한 결과가 없습니다

TypeError: object of type 'FakeFile' has no len() 

이 두 가지 예상되는 결과를 제공합니다. 파일을 열 수 없다는 것은 정말 실망 스럽습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 왜 파이썬/GAE는 내 파일이 가짜라고 생각합니까?

+0

GAE는 제한된 파일 접근을 제공합니다. 파일을 읽으려고 했니? –

+0

나는'strToRead = open (path)'와 같은 파일을 읽으려고 노력했다. 'strToRead'는 비어있게되고 그 문자열에 대한 연산은 FakeFile 에러가됩니다. 동일한 디렉토리의 파일에서 템플릿을 렌더링 할 수 있습니다. –

답변

5

open 함수는 문자열이 아닌 열린 파일을 반환합니다. 열린 파일에는 len이 없습니다.

실제로 파일에서 문자열을 읽어야합니다 (예 : read 메서드 사용).

contents = open(path).read() 
myStrLen = len(contents) 

내용이 필요하지 않은 경우 os.stat으로 파일 크기를 가져올 수도 있습니다.

myStrLen = os.stat('/tmp/x.py').st_size 

FakeFilefile 단지 GAE의 샌드 박스 구현입니다.

+0

너희들 여기 온다. 나는 FakeFile 에러에 너무 집중하여 read 메소드를 놓쳤다. –

+0

기꺼이 도와 드리겠습니다. –

+0

'os.stat'는 App Engine에서 올바르게 작동해야합니다. –

관련 문제