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을 시작할 때는 자동으로 이 명령이 실행되어 작업 폴더가 변경된다.



Posted by 살레시오

댓글을 달아 주세요

  파이썬에서 사용자 폴더를 검색 경로에 추가시키기 위해서는 다음과 같이 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]

Posted by 살레시오

댓글을 달아 주세요