파이썬코드를 포터블하게 사용하기

쉘 상에서 다음과 같이 해서 한줄로 파이썬 코드를 사용할 수 있다.

cHl0aG9uMyAtYyAicHJpbnQoJzEyMycpIg==
python3 -c "print('123')"

파일화 되어있는 파이썬 코드를 위와 같은식으로 커맨드라인 한줄로 변환하는 것을 하고자 하는것이다.

한줄로 하여 코드조각처럼 들고다닐 수 있는것이다.

예를 들어 sample.py 이 있고 이 안에 다음의 내용이 기록되있다 하자

Zm9yIGkgaW4gWzEsMiwzLDQsNV06DQogICBwcmludCgiTnVtYmVyOiAiICtzdHIoaSkp
for i in [1,2,3,4,5]: print("Number: " +str(i))

쉘에서 다음과 같이 입력해본다

d2hpY2ggYmFzZTY0OyB3aGljaCBvcGVuc3NsOw==
which base64; which openssl;

했을때 각각 두개의 경로가 잘 나오면 다음을 진행할 수 있다

만약 안나온다면 안나오는것에 대해 설치해주고 진행하자

ZWNobyAncHl0aG9uMyAtYyAiYGVjaG8gJyInYG9wZW5zc2wgYmFzZTY0IDwgc2FtcGxlLnB5IHwgdHIgLWQgJ1xuJ2AnIHwgYmFzZTY0IC0tZGVjb2RlIidgIic=
echo 'python3 -c "`echo '"'`openssl base64 < sample.py | tr -d '\n'`' | base64 --decode"'`"'

실행하고나면 다음의 코드가 나올것이다.

이제 다음의 코드를 쉘에서 실행하면 위 sample.py 파이썬파일을 실행한 셈이 된다.

물론 sample.py파일은 더 이상 없어도 상관없다

cHl0aG9uMyAtYyAiYGVjaG8gJ1ptOXlJR2tnYVc0Z1d6RXNNaXd6TERRc05WMDZDaUFnSUNBZ0lDQndjbWx1ZENnaVRuVnRZbVZ5T2lBaUlDdHpkSElvYVNrcENnbz0nIHwgYmFzZTY0IC0tZGVjb2RlYCI=
python3 -c "`echo 'Zm9yIGkgaW4gWzEsMiwzLDQsNV06CiAgICAgICBwcmludCgiTnVtYmVyOiAiICtzdHIoaSkpCgo=' | base64 --decode`"

이 복사해서 쉘에 다시 붙여넣어보자

TnVtYmVyOiAxDQpOdW1iZXI6IDINCk51bWJlcjogMw0KTnVtYmVyOiA0DQpOdW1iZXI6IDU=
Number: 1 Number: 2 Number: 3 Number: 4 Number: 5

이 방법으로 파일없이 손쉽게 파이썬 코드를 포터블하게 사용할 수 있다.