Python interactive shell에서 OS등이 지원하는 shell commands를 사용하지 못하는 것과 달리,
IPython shell
에서는 많이 사용되는 shell commands는 다음과 같이 사용가능함.
In [17]: pwd
Out[17]: '/home/dsaint31'
In [18]: ls
lectures@ Mambaforge.sh* Miniconda3-latest-Linux-x86_64.sh* test/
mambaforge/ miniconda3/ pdfsizeopt/
In [19]: cd pdfsizeopt/
/home/dsaint31/pdfsizeopt
In [20]: ls
pdfsizeopt_libexec/ pdfsizeopt_libexec_linux.tar.gz pdfsizeopt.single*
In [21]: mkdir test
In [22]: ls
pdfsizeopt_libexec/ pdfsizeopt_libexec_linux.tar.gz pdfsizeopt.single* test/
In [23]: mv pdfsizeopt_libexec_linux.tar.gz ./test/
In [24]: ls
pdfsizeopt_libexec/ pdfsizeopt.single* test/
In [25]: cd test
/home/dsaint31/pdfsizeopt/test
In [26]: ls
pdfsizeopt_libexec_linux.tar.gz
In [27]:
In [숫자]
:- 사용자의 input을 대기하는 prompt라고 볼 수 있다.
- square bracket 안의 숫자는 실행 순서를 나타내는 번호이다.
위의 예제는 automagic
이 ON
상태에서 동작된다. (magic commands가 %
prefix 없이 수행가능한 상태)
만약 automagic
이 OFF
상태라면 %
prefix를 붙여야 함.
IPython이 제공하는 shell-like magic commands 는 다음과 같음.
%cat
, %cp
, %env
, %ls
, %man
, %mkdir
, %more
, %mv
, %pwd
, %rm
, %rmdir
위에서 살펴본 commands 외에 OS에서 지원하는 shell commands를 실행하려면 prefix로 !
를 붙여주면 된다.
In [27]: !hostname -I
172.30.205.73
In [28]:
- 해당 시스템의 ip 주소를 확인하는 명령어임.
Shell commands의 결과를 변수로 받아서 Python에서 사용할 수도 있고, Python의 변수를 curly bracket을 이용하여 shell commands에 넘겨줄 수 도 있다.
In [38]: c = !ls
In [39]: print(c)
['pdfsizeopt_libexec', 'pdfsizeopt.single', 'test']
In [40]: c = "Hello, IPython!"
In [41]: !echo {c}
Hello, IPython!
In [42]:
읽어보면 좋은 자료
https://dsaint31.me/mkdocs_site/OS/linux_cmds/#_13
https://swcarpentry.github.io/shell-novice/
https://jakevdp.github.io/PythonDataScienceHandbook/01.05-ipython-and-shell-commands.html
'Python' 카테고리의 다른 글
[Python] sys 모듈 (0) | 2023.09.25 |
---|---|
[Pandas] Index 지정 관련 메서드 : reset_index, set_index (0) | 2023.09.20 |
[Python] else : break checker (0) | 2023.09.18 |
[Python] Type Annotation: 파이썬에서 변수 및 함수에 type 지정. (0) | 2023.08.30 |
[Python] functools.partial (0) | 2023.08.25 |