Python

    [Python] - 모듈탐구 os - Python으로 내 컴퓨터 조작하기

    와 글이 날아갔다. 다시 쓴다. os는 Python에 내장되어있는 모듈 중 하나로, 저수준의 파일과 디렉터리 작업을 지원한다.(고수준의 기능과 확장성, 이식성이 필요하다면 shutil이라는 더 적합한 모듈이 있다.) 옛날 Latte에는 DOS OS를 이용한 window를 사용을 했다.(그 때의 Window는 이런 이쁘장한 화면 없었다~ 이 말이야) 검은 화면에 글자로 상호작용하는, 지금으로 치면 cmd명령프롬포트가 사용자와의 인터페이스 역할을 해주었다. os는 python수준에서 컴퓨터의 파일 시스템과 파일에 접근 / 처리를 지시할 수 있는 Python수준의 기능을 제공한다. 그러면 바로 만나보자 * 이 모듈탐구시간에는 WINDOW에서 사용되는 os모듈 함수들만을 다룬다 * * 파일디스크립터 함수는 나도..

    [Python] - 모듈탐구 pickle - 자료구조의 저장과 불러오기

    컴퓨터 세계에서 자주 사용되는 json이라는 표준이다. json은 Python을 자주 사용하는 사람이라면 아는 dictionary이라는 자료구조와 유사하게 생겼는데, 광범위하게 데이터 오브젝트를 인간이 읽을 수 있는 상태에서 전달하기 위한 표준이다. 다음은 json의 예시이다. { "file_format_version" : "1.0.0", "ICD": { "library_path": ".\\XXX.dll", "api_version": "1.0.3" } } // json파일의 예시 json처럼 객체를 저장하고 나중에 재구성할 수 있는 포맷으로 표기하는것을 직렬화(Seriallization), 그 데이터를 다시 불러오는 것을 역직렬화(Deseriallization)이라고 한다. Python은 json처럼 인..

    [Python] - 모듈탐구 copy - 뭐! 모듈이 복사가 된다고?

    혹시 이 글을 읽는 독자는 LIST의 복사를 시도해보았는가? 아마 a=[1,2,3]과 같은 LIST를 바로 b=a로 복사부터 시도했을 가능성이 크다(우리 Python은 직관적이어서 이거도 돼야 되는 거 아닌가?) 웃긴 건 이때 a [0]=5를 하면 b도 [5,2,3]이 된다는 점이다. 이는 복사의 깊이가 달라서 생기는 문제이다. 복사의 구분 복사는 수준에 따라 다음과 같이 구분된다. ① 얕은 복사(Shallow copy) : 메모리 주소만 같은 곳을 가리키게 복사되는것, 값이 복사되는 것은 아니다. ② 깊은 복사(Deep copy) : 실제 값까지 모두 복사되는 것 Python은 모듈 copy를 통해서 이 복사행위를 다룬다. 다음은 두 가지는 copy모듈이 제공하는 함수이다. 1. copy.copy(x)..

    [Python] - 모듈탐구 base64 - == =

    base64라는 인코딩 방식을 들어본 적이 있는가? 컴퓨터 분야에서 상당히 많이 쓰이는 인코딩 방식이넫, 이진 파일들을 문자 코드에 영향을 받지 않는 64개의 ASCII를 사용하여 일련의 문자열로 변환하는 인코딩 방식이다. 이와 비슷하게 base32, base 16 방식도 존재하고, ASCII 문자 자체가 128개가 되지 않기 때문에 base128은 없는 방식이다.(대신 귀 여운 8 5를준 비했습니다.) 특수한 규약으로는 base64로 인코딩 된 문자는 = 혹은 ==으로 끝이난 다는 점이다. 모듈 탐구 시간, 오늘은 이 base인코딩을 다루는 base64 모듈을 알아보도록 하자 base64모듈에서 사용되는 함수들은 전부 base64 클래스의 클래스 함수이다. 부호기 - ENCODER 1. base64.b..

    [Python] - 모듈탐구 random - Python을 처음하신다구요? 그런당신을 위해 준비했습니다!

    2번째 모듈 탐구 이번 살펴볼 모듈은 random이다. 사실 random을 컴퓨터에서 완전히 구현하는 것은 불가하다고 본다. 일정수의 주기를 가지고 생성하는 유사 난수 생성기(PRING)로 난수를 생성하게 되는데, 이 난수를 더욱 잘 처리할 수 있게 도와주는 모듈이 random 모듈이다. 일단 random모듈에서 제공하는 함수는 Random 클래스에 정의된 클래스 메서드 이다.(random 모듈에서 제공하는 클래스는 random과 systemrandom 2가지이다.) 그중 대부분의 함수는 다음의 random.random()이라는 [0, 1.0) 사이 무작위 float를 반환하는 기본 함수에 의존한다. 난수 생성기를 관리하는 함수 random.seed(a=None) : 난수 생성기는 무엇을 기준으로 난수를..

    [Python] - 모듈탐구 time - Python 멈춰!

    모듈 탐구 그 첫 번째 시간 time 함수이다. 사실 필자는 time 모듈을 사용하면서 sleep함수나 strptime 등 쓰던 함수만 쓰는 일이 다수 있지만.... 이번 기회에 time 모듈을 조금 공부하면서 아는 지식을 정리하고자 한다. 일단 용어를 정리하고 가야한다. * 에포크(epoch) : 시간이 시작되는 시점(태초에 만물이 있을 지어니...) 플랫폼에 따라 다른데 예를 들면 유닉스는 1970년 1월 1일 00:00:00(UTC)이다. time.gmtime(0)로 알아볼 수 있다. * UTC : 협정 세계시로, 그리니치 표준시인 GMT로 알려져 있다. * DST : 일광 절약 시간으로 일 년 중 일부 기간 시간대를 한 시간 조정하는(서머타임)이다. 먼저 에포크 이후의 시간은 time.time()..