레이블이 폴더인 게시물을 표시합니다. 모든 게시물 표시
레이블이 폴더인 게시물을 표시합니다. 모든 게시물 표시

2015년 6월 17일 수요일

싸이랩(scialb)의 폴더 관련 명령어와 변수들

 Scilab에서 작업 폴더와 관련된 기본적인 명령어들은 다음과 같다. (리눅스 쉘 명령어들과 유사하다.)
[표 1] 폴더와 관련되 Scilab 명령들
명령어
기능
ls (혹은 dir)
현재 폴더의 내용물을 표시
pwd
현재 폴더(경로)를 표시
chdir full_path
chd  ‘full_path’
작업 폴더를 full_path 로 변경
(위와 상동)
mkdir
폴더를 생성
폴더와 관련된 변수들은 다음 표에 정리하였다.
[표 2] 폴더와 관련된 변수들
변수명
내용
HOME
사용자 홈 디렉토리(환경변수)
home
사용자 홈 디렉토리(전역변수)
OS
운영체제(환경변수)
PWD
작업 디렉토리(전역변수)
SCI
Scilab이 설치된  디렉토리(환경/전역변수)
SCIHOME
환경설정을 담은 디렉토리(환경/전역변수)
TMPDIR
임시 디렉토리 (전역변수)
 
여기서 전역변수는 일반적인 변수처럼 접근할 수 있으나 환경변수는 getenv() 와 setenv()함수를 이용해서 접근한다. 예를 들어서
>> getenv(‘HOME’)
ans =
       C:\Users\jhp
이 함수의 입력 인수는 문자열이며 Scilab에서는 폴더를 구별할 때 역슬래시(\)가 아니라 리눅스에서처럼 그냥 슬래시’/’ 문자를 사용한다는 것에 유의해야 한다.
 SCIHOME 환경 변수에는 과거 명령어들(history)등을 저장하는 파일들이 있는 폴더명을 나타낸다. 이 폴더에 scilab.ini 라는 스크립트 화일을 만들면 Scilab이 실행될 때마다 자동으로 읽어 들이는 시작 파일이 된다. 따라서 이 파일에 사용자가 자신만의 전역변수라든지 작업폴더 혹은 커스텀 라이브러리를 읽어들이는 명령어들을 기록해 두면 편리하게 사용할 수 있다. 예를 들어 작업 폴더를 Scilab이 시작할 때 자동으로 d:/scilab_files 라는 폴더로 변경하고 싶을 때는 scilab.ini 파일을 SCIHOME 폴더에 생성한 후 다음과 같이 작성하면 된다.
chd d:/scilab_files
그러면 다음에 Scilab을 시작할 때는 자동으로 이 명령이 실행되어 작업 폴더가 변경된다.


2015년 4월 24일 금요일

[00085] 폴더를 파이썬 모듈로 만들기

  파이썬에서 사용자 폴더를 검색 경로에 추가시키기 위해서는 다음과 같이 sys 모듈의 path 리스트에 이 경로를 추가해 주면 된다.

---------------------------------------------------------------------------
>>> import sys
>>> sys.path.append('d:/mydir') # 윈도는 'd:\\mydir'
---------------------------------------------------------------------------

그러면 만약 다음과 같이 모듈을 import 할 때

---------------------------------------------------------------------------
>>> import mymod
---------------------------------------------------------------------------

사용자 폴더 안에서도 mymod.py 파일이 있는지 검색해 보게 된다.
  그런데 검색 경로 안에 어떤 폴더가 있고 그 폴더 안에 __init__.py 파일이 있다면 이것은 그 폴더가 파이썬 모듈이라는 것을 표시하는 역할을 한다. 예를 들어 다음과 같이 spam폴더 안에 파일이 두 개가 있다고 가정하자.


    d:/ mydir / spam /__init__.py # 이 파일이 spam 폴더를 파이썬모듈로 만든다.
    d:/ mydir /spam / module.py

그리고 d:/mydir 이 경로로 잡혀있다고 가정한다. 그렇다면 spam 폴더는 파이썬 모듈로 간주되고 module.py는 하위모듈로 취급된다. 그래서 module.py 모듈파일을 다음과 같이 불러올 수 있다.

---------------------------------------------------------------------------
>>> import spam.module
---------------------------------------------------------------------------

또는

---------------------------------------------------------------------------
>>> from spam import module
---------------------------------------------------------------------------

즉, spam폴더 안에 __init__.py 파일이 있다면 spam 폴더는 모듈로 간주되고 module.py 는 서브모듈이 된다. 만약 __init__.py 파일을 지운다면 파이썬은 spam 폴더를 모듈로 취급하지 않으므로 module.py 도 더이상 서브모듈로 간주되지 않는다. 따라서 위의 명령어는 오류를 발생시킬 것이다.

이 __init__.py 은 그냥 빈 파일일 수도 있지만, 객체를 정의하거나 서브패키지의 특정 부분만을 선택하여 내보내거나 하는 코드를 가질 수도 있다. 만약 __init__.py 안의 내용을 접근하려면 다음과 같이 하면 된다.

---------------------------------------------------------------------------
>>> import spam
---------------------------------------------------------------------------
이렇게 하면 __init__.py 안에 정의된 객체들이 spam 모듈로 올라오게 된다. 주의할 점은 이렇게 spam 모듈을 임포트한다고 해서 module.py 가 자동으로 하위모듈로 임포트되는 것은 아니라는 것이다. spam이 임포트될 때 module 도 임포트되려면 __init__.py 안에 다음과 같이 명시해 주어야 한다.

---------------------------------------------------------------------------
# __init__.py 화일의 내용
from . import module
---------------------------------------------------------------------------

이렇게 하면 spam.module 로 접근할 수 있다.
[#00085]