파일 접근
이 Python 함수들을 사용하면 game 디렉터리, RPA 아카이브 또는 Android 애셋에 있는 애셋 파일에 접근할 수 있습니다.
- renpy.file(fn, encoding=None)
이전 Ren'Py 버전과의 호환성을 위한
renpy.open_file()의 별칭입니다.
- renpy.list_files(common=False)
game 디렉터리와 아카이브 안의 파일 목록을 반환합니다. 디렉터리 구분자로 /를 사용하는 파일 리스트를 반환합니다.
- common
참이면 common 디렉터리의 파일도 목록에 포함합니다.
- renpy.loadable(filename, directory=None, tl=True)
지정한 파일명을 불러올 수 있으면, 즉 디스크나 아카이브 안에서 불러올 수 있으면 True를 반환합니다. 그렇지 않으면 False를 반환합니다.
- directory
None이 아니라면 game 디렉터리에서 파일을 찾지 못했을 때 검색할 디렉터리입니다. 파일명 앞에 이 경로를 붙여 다시 검색합니다.
- tl
True이면 번역 하위 디렉터리도 검색합니다.
- renpy.open_file(fn, encoding=None, directory=None)
fn이라는 파일에 접근하는 읽기 전용 파일 유사 객체를 반환합니다. Ren'Py의 표준 검색 방식으로 파일에 접근하며, 파일은 game 디렉터리, RPA 아카이브 또는 Android 애셋에 있을 수 있습니다.
이 객체는 바이너리 모드로 연 Python 표준 파일 객체의 필드와 메서드 중 상당수를 지원합니다. 기본적으로 읽기 전용 파일에 적합한 메서드를 모두 지원합니다.
- encoding
지정하면 해당 인코딩의 텍스트 모드로 파일을 엽니다. False이면 바이너리 모드로 엽니다. 기본값인 None이면
config.open_file_encoding에서 인코딩을 가져옵니다. 대부분의 경우 None은 파일을 바이너리 모드로 엽니다.- directory
None이 아니라면 game 디렉터리에서 파일을 찾지 못했을 때 검색할 디렉터리입니다. 파일명 앞에 이 경로를 붙여 다시 검색합니다.
encoding이 None이면 io.BufferedReader 객체를 반환하고, None이 아니면 io.TextIOWrapper 객체를 반환합니다.
드물게 사용하는 함수
다음 함수는 비교적 드물게 사용합니다.
- renpy.exists(filename)
지정한 파일명을 검색 경로에서 찾을 수 있으면 참을 반환합니다. 디스크에 실제 파일이 존재해야 작동하며, 아카이브 안의 파일은 찾지 못합니다.
대부분의 경우 이 함수 대신
renpy.loadable()을 사용하는 것이 좋습니다.
- renpy.fsdecode(s)
s를 파일 시스템 인코딩에서 유니코드로 변환합니다.
- renpy.fsencode(s, force=False)
s를 유니코드에서 파일 시스템 인코딩으로 변환합니다.
- renpy.image_size(im)
이미지 매니퓰레이터를 받아 불러온 뒤 크기를 나타내는 (
width,height) 튜플을 반환합니다.이미지 캐시를 사용하지 않고 디스크에서 이미지를 읽어 압축을 해제하므로 느릴 수 있습니다.