Python/Python 프로그래밍: 68개의 글
보통 보안 인프라가 갖추어져 있는 회사에는 회사 프록시를 통해 외부 인터넷에 접속할 수 있습니다. 하지만 이게 종종 문제가 되는 게 pip, npm 같은 패키지 매니져를 통해 해당 라이브러리가 제대로 다운로드 되지 않는 문제가 발생합니다...... 그 이유는 보통 그 사이트에서 보내온 인증서가 아닌 회사 인증서가 컴퓨터로 전송되기 때문에 그런데요. 저희 회사도 회사 프록시에 있는 인증서가 와서 제대로 pip, npm 같은 패키지 매니져가 제대로 작동하지 않았습니다ㅠㅠ 이럴 때는 1. 해당 패키지 매니져가 요청하는 호스트[ex) pypi.python.org]에 대한 인증서가 패키지 매니져에 등록되어 있거나 2. 해당 URL을 무조건 신뢰하겠다는 옵션을 설정하거나 3. strict-ssl 설정을 false로..
최근에 부동산에 관심을 많이 가지게 되면서 부동산 공부 및 그와 관련된 데이터를 수집하는 일에 관심을 가지게 되었습니다. 데이터를 수집할 때 쉽게 이용할 수 있는 방법은 데이터의 바다인 웹에서 데이터를 가져오는 것인데요. 이 과정을 크롤링(crawling) 또는 스크래핑(scraping)이라고 합니다. 이번 포스팅에서는 제가 최근에 사용했던 크롤러 솔루션인 scrapy를 소개하고자 합니다. | 기존 크롤링할 때의 문제점 보통 크롤링을 할 때 수집할 데이터가 적은 경우에는 간단한 프로그래밍만으로도 원하는 데이터를 충분히 가져올 수 있습니다. 하지만 가져올 데이터양과 데이터를 소싱할 URL 수가 많아지면 크롤러의 소스 코드 수도 그만큼 복잡하고 길어지게 됩니다. 그에 따라 유지보수가 아주 어려워 지고 예외사..
| Call by assignment 파이썬은 함수 호출시 인자를 Call by assignment 방식으로 값을 불러옵니다. Call by assignment는 값에 의한 호출(Call by value), 참조에 의한 호출(Call by reference)과는 다르게 동작합니다. 이것을 이해하기 위한 키포인트는 함수 안에서 넘겨받은 값이 객체의 변경여부에 따라서 어떻게 다르게 동작하는 지를 아는 것입니다. 함수가 호출될 때는 모두 Call by reference로 불러들입니다. 하지만 mutable이냐 immutable이냐에 따라 함수 안에 객체의 값을 조작할 경우 다르게 동작하게 됩니다. mutable객체일 때는 참조에 의한 호출로서 계속 동작하게 되지만, immutable객체 일때는 값에 의한 호출..
1. virtualenv 로 개발 프로젝트 폴더 생성 1-1) virtualenv {프로젝트 폴더명} [그림 1-1] virtualenv 실행 2. pycharm 셋팅 2-1) pycharm 프로젝트 오픈 [그림 2-1] pycharm 프로젝트 오픈 2-2) 방금 생성한 폴더를 프로젝트 폴더로 설정 합니다. 2-3) File - settings... 로 이동 [그림 2-2] settings 로 이동 2-4) project Interpreter 설정 [그림 2-3] Project Interpreter 설정 2-5) Interpreter 추가 [그림 2-4] Interpreter 추가 2-6) 생성 폴더/Scripts/python.exe 추가 [그림 2-5] Interpreter 추가 출처 : chobokk..
소수점 중 불필요한 0이 있을 수 있다. 예를 들면 3.150 , 3.0, 4.000 과 같이 특정 이상 소수점 부터는 의미 없는 0일 수 있다.(엄밀히 말하면 의미 없다고 할 수 없지만!) 그럴 때 다음과 같이 하면 0을 제거 할 수 있다. print 10.0/2 print "%g" %(10.0/2) 결과는 다음과 같다. 5.0 5 [Finished in 0.1s]
sample_string = "1234567890abcdefgABCDEFG!@#$%^&*()_{}[]" result_string = "" for c in sample_string: if c.isalnum(): result_string +=c print result_string python 에서 텍스트를 처리할 때 특수문자를 제거해야 할 때가 있습니다. 이럴 때 정규표현식 으로 처리할 수도 있지만 다음과 같이 처리할 수도 있습니다. sample_string = "1234567890abcdefgABCDEFG!@#$%^&*()_{}[]" result_string = "" for c in sample_string: if c.isalnum(): result_string +=c print result_string ..
Python 에서 리스트(List)에 값은 함수를 적용하고 싶을 때 map 함수를 사용하면 됩니다. 예제 소스로 확인해 봅시다. def plus(x): return x+x lst = [1,2,3,4,5,6,7,8,9, "A", "B", "C"] print map(plus, lst) 결과는 다음과 같습니다. [2, 4, 6, 8, 10, 12, 14, 16, 18, 'AA', 'BB', 'CC'] [Finished in 0.1s] 출처: https://chobokkiri.tistory.com/26?category=656553 [초보끼리]
Naming module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_CONSTANT_NAME, global_var_name, instance_var_name, function_parameter_name, local_var_name. Names to Avoid single character names except for counters or iterators dashes (-) in any package/module name __double_leading_and_trailing_underscore__ names (reserved by Python) Naming Convention "Internal" mea..