Python
-
기록용으로 남깁니다. 리눅스에서 많은 유틸 프로그램이 파이프를 통해 stdin 으로 입력을 전달받아 처리하는 기능이 있습니다. 파이썬은 어떻게 가능할지 찾아봤습니다. import sys data = sys.stdin.readline().strip()
[python3] PIPE 등을 통해 stdin 으로부터 입력 받기기록용으로 남깁니다. 리눅스에서 많은 유틸 프로그램이 파이프를 통해 stdin 으로 입력을 전달받아 처리하는 기능이 있습니다. 파이썬은 어떻게 가능할지 찾아봤습니다. import sys data = sys.stdin.readline().strip()
2023.01.11 -
기록용으로 남깁니다. os.listdir() 함수로 파일 목록을 가져왔는데 정렬이 되어 있지 않았습니다. 이름대로 반환되는 결과물이 리스트일꺼라고 생각하고 os.listdir().sort() 를 호출했는데 Nonetype 은 sort 할 수 없다는 오류가 떳습니다. 인터넷을 뒤져서 sorted(os.listdir()) 로 원하는 결과는 얻었습니다. 다만, 왜 안되는지는 정확히 알 수 없었습니다. 알게 되면 글 내용을 업데이트하겠습니다. 추정하기로는 iterable 한 객체가 os.listdir() 에서 반환되고 있고, .sort() 는 이를 지원하지 못하고 sorted() 는 이를 지원할 수 있다?? 정도인데 절대로 사실이 아닐 확률이 높을 수 있으니 이유는 각자 찾아보시기 바랍니다.
[python3] 파일 목록 정렬해서 가져오기기록용으로 남깁니다. os.listdir() 함수로 파일 목록을 가져왔는데 정렬이 되어 있지 않았습니다. 이름대로 반환되는 결과물이 리스트일꺼라고 생각하고 os.listdir().sort() 를 호출했는데 Nonetype 은 sort 할 수 없다는 오류가 떳습니다. 인터넷을 뒤져서 sorted(os.listdir()) 로 원하는 결과는 얻었습니다. 다만, 왜 안되는지는 정확히 알 수 없었습니다. 알게 되면 글 내용을 업데이트하겠습니다. 추정하기로는 iterable 한 객체가 os.listdir() 에서 반환되고 있고, .sort() 는 이를 지원하지 못하고 sorted() 는 이를 지원할 수 있다?? 정도인데 절대로 사실이 아닐 확률이 높을 수 있으니 이유는 각자 찾아보시기 바랍니다.
2022.08.18 -
기록용으로 남깁니다. 윈도우 서버에서 파일 업로딩이 급할 때 쓸 수 있는 http file server 라는 프로그램이 있습니다. 문제는 이 프로그램이 공유기 상의 포트포워딩을 사용하는 환경에서 잘 동작하지 않습니다. 제공되는 웹페이지에 직접 들어가서 하나 하나 업로드하는 것은 가능하지만 클라이언트 쪽에서 curl 등을 통해 자동 업로드 하는 데에는 문제가 있었습니다. 공유기의 DMZ 기능을 쓸 수 있는 상황도 아닙니다. 인증이 필요없이 잠깐 열었다 닫는 파일 업로딩 용도이고, cli 상에서 실행 가능하여 자동화할 수 있어야 하며, 파일 이름을 변경할 수 있는 기능(원본 aa.png 를 1111-aa.png 로 변경)까지 제공되야 하고, 공유기 환경에서도 동작해야하는데, 그 기능들을 모두 만족하는 프로그..
[python] 파일 업로딩용 http 서버 예제기록용으로 남깁니다. 윈도우 서버에서 파일 업로딩이 급할 때 쓸 수 있는 http file server 라는 프로그램이 있습니다. 문제는 이 프로그램이 공유기 상의 포트포워딩을 사용하는 환경에서 잘 동작하지 않습니다. 제공되는 웹페이지에 직접 들어가서 하나 하나 업로드하는 것은 가능하지만 클라이언트 쪽에서 curl 등을 통해 자동 업로드 하는 데에는 문제가 있었습니다. 공유기의 DMZ 기능을 쓸 수 있는 상황도 아닙니다. 인증이 필요없이 잠깐 열었다 닫는 파일 업로딩 용도이고, cli 상에서 실행 가능하여 자동화할 수 있어야 하며, 파일 이름을 변경할 수 있는 기능(원본 aa.png 를 1111-aa.png 로 변경)까지 제공되야 하고, 공유기 환경에서도 동작해야하는데, 그 기능들을 모두 만족하는 프로그..
2022.04.12 -
기록용으로 남깁니다. Google chrome 브라우저에서 플러그인 업데이트가 떠 있길래 실행했는데 onetab 이 업그레이드 된 후 기존 내용이 다 날라가고 안보입니다.. 이래저래 복구할 수 있는 방법 없을까 찾아봤는데 잘 안되었습니다.. 어찌어찌 검색으로 찾다보니 C:\Users\my_loginid\Chrome\User Data\Default\Local Extension Settings\chphlpgkkbolifaimnlloiipkdnihall 라는 폴더를 알게 되었습니다. 그 안에 2MB 짜리 ldb 가 여러개 있더라구요. 열어봤더니 url 일부가 있었습니다!! 하나님께 감사드리며 이제 이 파일을 복구해보려고 시도를 했는데 안됩니다.. 그래 목록이라도 추출해보자 했는데 안됩니다.. 찾아보니 Goog..
[chrome][onetab] 플러그인 업데이트로 재설치 후 이전 기록 안보일 때 목록이라도 건지는 방법...기록용으로 남깁니다. Google chrome 브라우저에서 플러그인 업데이트가 떠 있길래 실행했는데 onetab 이 업그레이드 된 후 기존 내용이 다 날라가고 안보입니다.. 이래저래 복구할 수 있는 방법 없을까 찾아봤는데 잘 안되었습니다.. 어찌어찌 검색으로 찾다보니 C:\Users\my_loginid\Chrome\User Data\Default\Local Extension Settings\chphlpgkkbolifaimnlloiipkdnihall 라는 폴더를 알게 되었습니다. 그 안에 2MB 짜리 ldb 가 여러개 있더라구요. 열어봤더니 url 일부가 있었습니다!! 하나님께 감사드리며 이제 이 파일을 복구해보려고 시도를 했는데 안됩니다.. 그래 목록이라도 추출해보자 했는데 안됩니다.. 찾아보니 Goog..
2022.01.03 -
기록용으로 남깁니다. 파이썬이 실행되어 생성되는 *.pyc 파일에는 사용된 파이썬 버전 정보가 파일 맨 처음 4바이트에 저장되어 있습니다. 보통은 bad magic number 등의 문제가 생기면 *.pyc 파일을 지우고 재생성하면 되는데 그렇지 못한 상황을 위해 기록으로 남깁니다. 문제가 되는 pyc 파일의 첫 4바이트를 little endian 으로 직접 읽어서 확인하셔도 되고, 정상적으로 접근 가능한 환경이 있는 경우에는 코드로 확인하셔도 됩니다. # python 2.x 대 import imp imp.get_magic().encode('hex') 'd1f20d0a' # python 3.x 대 import importlib importlib.util.MAGIC_NUMBER.hex() '420d0d0a..
[python] magic number기록용으로 남깁니다. 파이썬이 실행되어 생성되는 *.pyc 파일에는 사용된 파이썬 버전 정보가 파일 맨 처음 4바이트에 저장되어 있습니다. 보통은 bad magic number 등의 문제가 생기면 *.pyc 파일을 지우고 재생성하면 되는데 그렇지 못한 상황을 위해 기록으로 남깁니다. 문제가 되는 pyc 파일의 첫 4바이트를 little endian 으로 직접 읽어서 확인하셔도 되고, 정상적으로 접근 가능한 환경이 있는 경우에는 코드로 확인하셔도 됩니다. # python 2.x 대 import imp imp.get_magic().encode('hex') 'd1f20d0a' # python 3.x 대 import importlib importlib.util.MAGIC_NUMBER.hex() '420d0d0a..
2021.10.05 -
기록용으로 남깁니다. 제목과 같은 오류 발생시 split() 등의 함수를 사용할 때 나타날텐데 넘어온 값이 str 이 아니라 bytes 로 되어 있어서 발생하는 오류입니다. 혹시 모르니 type 으로 자료형을 확인하거나 print 로 직접 출력해서 bytes 로 되어 있는 것을 확인해봅시다. bytes -> str 은 간단합니다. string_variable.decode() 하면 str로 변환됩니다. 이 결과물에 split()을 하던 다른 함수를 사용하면 되겠습니다.
[python3] a bytes like object is required not 'str' 오류기록용으로 남깁니다. 제목과 같은 오류 발생시 split() 등의 함수를 사용할 때 나타날텐데 넘어온 값이 str 이 아니라 bytes 로 되어 있어서 발생하는 오류입니다. 혹시 모르니 type 으로 자료형을 확인하거나 print 로 직접 출력해서 bytes 로 되어 있는 것을 확인해봅시다. bytes -> str 은 간단합니다. string_variable.decode() 하면 str로 변환됩니다. 이 결과물에 split()을 하던 다른 함수를 사용하면 되겠습니다.
2021.07.16 -
기록용으로 남깁니다. vscode 에서 Ctrl + , 키를 눌러 설정 창을 엽니다. Search settings 항목에 pylance를 입력합니다. 어느 영역에 적용할 지에 따라 User, Remote, Workspace 탭을 선택합니다. User는 전역, Remote는 원격 접속시, Workspace 는 현 작업공간에 적용됩니다. 저는 일단 Workspace 를 선택했습니다. 항목을 보면 Python > Analysis: Type Checking Mode 라고 되어 있는 부분이 있습니다. off/basic/strict 의 3가지 값을 고를 수 있는데 이 오류는 off 를 선택해야 나오지 않았습니다. 경고를 끄면 정작 도움이 필요할 때 얻지를 못하니 신중하게 생각하고 결정하시기 바랍니다.
[python3][vscode][pylance] operator "in" not supported for types literal and str int float 26,12 오류 끄기기록용으로 남깁니다. vscode 에서 Ctrl + , 키를 눌러 설정 창을 엽니다. Search settings 항목에 pylance를 입력합니다. 어느 영역에 적용할 지에 따라 User, Remote, Workspace 탭을 선택합니다. User는 전역, Remote는 원격 접속시, Workspace 는 현 작업공간에 적용됩니다. 저는 일단 Workspace 를 선택했습니다. 항목을 보면 Python > Analysis: Type Checking Mode 라고 되어 있는 부분이 있습니다. off/basic/strict 의 3가지 값을 고를 수 있는데 이 오류는 off 를 선택해야 나오지 않았습니다. 경고를 끄면 정작 도움이 필요할 때 얻지를 못하니 신중하게 생각하고 결정하시기 바랍니다.
2021.06.24 -
기록용으로 남깁니다. 이 글을 참고했습니다. with tarfile.open("zipped.tar.gz", "w:gz") as tar: tar.add(f"/tmp/01.log") sourcefile은 압축할 파일이고 zipped.tar.gz 는 생성될 압축 파일입니다. tar cvzf zipped.tar.gz /tmp/*.log 와 유사한 결과가 생성된다고 보시면 됩니다. 간단하죠? ㅎㅎ
python 에서 tar.gz 파일 만들기기록용으로 남깁니다. 이 글을 참고했습니다. with tarfile.open("zipped.tar.gz", "w:gz") as tar: tar.add(f"/tmp/01.log") sourcefile은 압축할 파일이고 zipped.tar.gz 는 생성될 압축 파일입니다. tar cvzf zipped.tar.gz /tmp/*.log 와 유사한 결과가 생성된다고 보시면 됩니다. 간단하죠? ㅎㅎ
2021.06.15