2014-06-15 1 views
1

와 Mac에서 .pages 파일 :열기 나는이 같은 페이지의 문서 열려 파이썬

IOError: [Errno 21] Is a directory: '/path/to/file/test.pages' 

왜이 디렉토리 :

directory = "/Path/to/file/" 
with open(directory+"test.pages") as file: 
    data = f.readlines() 
    for line in data: 
     words = line.split() 
     print words 

은 그 때 나는이 오류를 가지고 있습니까? 그러면 어떻게 열 수 있습니까?

+0

그것은 디렉토리 - OSX이다는 여러 개의 파일을 들고 디렉토리에있는 번들을 사용하여 컨테이너를 처리합니다. 그럼에도 불구하고 터미널이나 파이썬 명령을 사용하여 찾은 개별 파일은 일반 텍스트를 포함하지 않으므로 코드가 작동하지 않습니다. – Mark

+0

다른 사람들이이 문서를 닫으려는 시도를했으나 너무 광범위하다고 생각하지 않습니다. 다른 사람들도 비슷한 문제를 겪을 수 있으며 쉬운 대답은 없지만 내가 제공 한 것과 같은 단순한 대답이 있습니다. –

+0

파이썬으로 파일을 조작하려면 파일을 일반 텍스트로 내 보내야 할 것입니다. – Bryan

답변

1

'/path/to/file/test.pages'은 파일 시스템의 디렉토리이므로 Python으로 열 수 없습니다. 귀하의 운영 체제는 해당 디렉토리에 여러 파일을 번들로 제공 할 것이며 아마도 단일 패키지로 제시 할 것입니다. 디렉토리를 걸어 가서 내용을 가져올 수 있습니다.

그러나 파일을 열고 내용을 읽으려고하면 효과가 없을 수 있습니다.

나는 어떤 일반 텍스트를 찾기 위해 시도하는 방법을 보여 드리겠습니다 :

import re 
# use a pattern that matches for any letter A-Z, upper and lower, 0-9, and _ 
pattern = re.compile(r'.*\w+.*') 

for root, dirs, files in os.walk('/path/to/file/test.pages'): 
    for file in files: 
     # open each file with the context manager so it's automatically closed 
     # regardless if there's an error. Use the Universal Newlines (U) flag too 
     # as a best practice (Unix, Linux, and MS have different newlines). 
     with open(os.path.join(root, file), 'rU') as f: 
      for line in f: 
       if re.match(pattern, line): 
        print line 
+0

감사합니다. 이것이 지금 어떻게 작동하는지에 대한 통찰력을 얻었습니다. 번들에는 zip 파일, 일부 이미지 및 plist 파일이 들어 있습니다. 일반 텍스트 시도는 내가 작성한 텍스트 사이에 물음표와 어딘가의 전체 묶음을 반환했습니다. 이 암호를 해독 할 방법이 없습니까? – VitalRemains

0

내가 OSX 10.9.3와 맥북 프로가있다.

귀하의 코드를 사용했는데 귀하가 인용 한 문제가 없습니다. 당신이 .pages 파일을 여는되기 때문에, 파일을 디코딩해야합니다

File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/encodings/ascii.py", line 26, in decode 
    return codecs.ascii_decode(input, self.errors)[0] 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 10: ordinal not in range(128) 
+0

일부 버전의 페이지는 번들을 사용하고 일부는 압축 된 단일 파일을 사용합니다. 가장 최근 버전의 페이지 (5.2)는 번들을 사용합니다. –

관련 문제