2016-07-26 1 views
0

나는 파이썬과 숭고한 텍스트 API 개발자에게 매우 익숙하다.숭고한 텍스트 3에있는 파일의 내용을 얻는 방법 파이썬 API

파일의 내용 (현재 열려있는 파일 옆에 있음)을 새 패널 창에 표시하려고합니다.

나는 새로운 패널에게 문제를 만들 수 없다하고

def newLogWindow(self, output): 
    window = self.view.window() 

    new_view = window.create_output_panel("log") 
    new_view.run_command('erase_view') 
    new_view.run_command('append', {'characters': output}) 
    window.run_command("show_panel", {"panel": "output.log"}) 

    sublime.status_message('Metalang') 

pass 

하지만 내가 필요로하는 것은 그 함수에 전달 파일의 내용을 얻을 수있는 기능입니다를 사용하여 문자열을 표시 할 수 있습니다.

content = xxxx.open_file("filename.txt") 
// somehow get contents of this file? 
// pass it to log window 
self.newLogWindow(content); 

도움 주셔서 감사합니다.

답변

2

성인용 텍스트에서 파일을 여는 내장 API는 Window에 연결되어 있으며 탭에 해당하는 View을 반환합니다. 귀하의 경우 파일의 내용으로 패널 (기존의 View은 탭과 관련 없음)을 업데이트하려고하므로 Sublime Text API를 사용할 수 없습니다./: - :

대신 당신은 open method 사용하여 파이썬에서 직접 작업을 수행 할 수 있습니다> HTTPS 키스 홀 @ 그것에 대해

with open('filename.txt', 'r') as myfile: 
    content = myfile.read() 
    self.newLogWindow(content) 
+0

감사합니다 .. 모든 NUL의 I 출력에서 ​​볼 수 제외 "작품" /www.dropbox.com/s/iepdg00pobmshp6/Capture.PNG?raw=1. 어떤 생각을 어떻게 없애겠습니까? – markstewie

+0

@markstewie 당신의'filename.txt'가 저장된 인코딩은 무엇입니까? open ('filename.txt', 'r', encoding = 'UTF-8')'과 같이'open' 호출의 일부로 지정할 필요가 있습니다. –

+0

흠, 작동하지 않지만 인코딩과 관련이 있습니다 ... 실제 파일의 내용을 새 테스트 파일에 복사하고 예상대로 작동합니다. 그래서 파일의 내용 유형을 변경하는 방법을 알아야합니다. – markstewie

관련 문제