728x90
반응형

프로그래밍 언어/Python 318

Python 단위 테스트 파일의 위치

질문 : Python 단위 테스트는 어디로 갑니까? 라이브러리 또는 앱을 작성하는 경우 단위 테스트 파일은 어디에 있습니까? 메인 앱 코드에서 테스트 파일을 분리하는 것은 좋지만, 테스트 할 모듈을 가져 오기가 더 어려워 지므로 앱 루트 디렉터리 내의 "tests"하위 디렉터리에 파일을 넣는 것은 어색합니다. 여기에 모범 사례가 있습니까? 답변 module.py 파일의 경우 단위 테스트는 일반적으로 Pythonic 명명 규칙에 따라 test_module.py test_module.py 를 넣는 데 일반적으로 허용되는 몇 가지 위치가 있습니다. 나는 테스트를 찾고 가져 오는 단순성 때문에 # 1을 선호합니다. test_ 시작하는 파일을 실행하도록 쉽게 구성 할 수 있습니다. 사실, 기본 unittest 테..

파이썬 requests을 사용하여 이미지를 다운로드하는 방법

질문 : 요청을 사용하여 이미지를 다운로드하는 방법 requests 모듈을 사용하여 웹에서 이미지를 다운로드하고 저장하려고합니다. 내가 사용한 (작동하는) 코드는 다음과 같습니다. img = urllib2.urlopen(settings.STATICMAP_URL.format(**data)) with open(path, 'w') as f: f.write(img.read()) requests 사용하는 새로운 (작동하지 않는) 코드입니다. r = requests.get(settings.STATICMAP_URL.format(**data)) if r.status_code == 200: img = r.raw.read() with open(path, 'w') as f: f.write(img) requests 에서 사용..

파이썬의 정적 메서드

질문 : 파이썬의 정적 메서드? 클래스를 초기화하지 않고 호출 할 수있는 Python에서 다음과 같은 정적 메서드를 가질 수 있습니까? ClassName.static_method() 답변 네, staticmethod 데코레이터 사용 class MyClass(object): @staticmethod def the_static_method(x): print(x) MyClass.the_static_method(2) # outputs 2 일부 코드는 데코레이터가 아닌 함수로 staticmethod 를 사용하여 정적 메서드를 정의하는 이전 방법을 사용할 수 있습니다. 고대 버전의 Python (2.2 및 2.3)을 지원해야하는 경우에만 사용해야합니다. class MyClass(object): def the_sta..

Python의 stdlib를 사용하여 로컬 IP 주소 찾기

질문 : Python의 stdlib를 사용하여 로컬 IP 주소 찾기 Python 플랫폼에서 독립적으로 표준 라이브러리 만 사용하여 로컬 IP 주소 (예 : 192.168.xx 또는 10.0.xx)를 어떻게 찾을 수 있습니까? 답변 import socket socket.gethostbyname(socket.gethostname()) 이것은 (반환 항상 작동하지 않습니다 127.0.0.1 에 호스트 이름을 가진 시스템에서 /etc/hosts 로 127.0.0.1 ) 프로그램, 사용 기멜 무엇을하는 paliative이 될 것 socket.getfqdn() 대신합니다. 물론 컴퓨터에는 확인할 수있는 호스트 이름이 필요합니다. 출처 : https://stackoverflow.com/questions/166506/..

일반 Python 목록에 비해 NumPy의 장점

질문 : 일반 Python 목록에 비해 NumPy의 장점은 무엇입니까? 일반 Python 목록에 비해 NumPy 의 장점은 무엇입니까? 약 100 개의 금융 시장 시리즈가 있으며 100x100x100 = 1 백만 셀의 큐브 배열을 만들 것입니다. 표준 오류로 배열을 채우기 위해 각 x를 각 y 및 z로 회귀 (3 변수) 할 것입니다. "대형 행렬"의 경우 성능 및 확장 성 이유로 인해 Python 목록과 반대로 NumPy를 사용해야한다고 들었습니다. 사실, 저는 파이썬 목록을 알고 있고 그것들이 저를 위해 일하는 것 같습니다. NumPy로 이동하면 어떤 이점이 있습니까? 1000 개의 계열 (즉, 큐브에 10 억 개의 부동 소수점 셀)이 있으면 어떻게됩니까? 답변 NumPy의 배열은 Python 목록보다..

파이썬 인스턴스의 클래스 이름을 얻는 방법

질문 : 인스턴스의 클래스 이름을 얻습니까? 이 작업을 수행하는 함수가 인스턴스의 클래스가 파생 된 기본 클래스 인 경우 Python에서 개체의 인스턴스를 만든 클래스의 이름을 어떻게 찾습니까? 검사 모듈 이 여기에서 나를 도왔을지도 모른다고 생각했지만 내가 원하는 것을 제공하지 않는 것 같습니다. __class__ 멤버를 구문 분석하지 않고이 정보를 얻는 방법을 모르겠습니다. 답변 클래스 __name__ 속성 을 사용해 보셨습니까? 즉, type(x).__name__ 은 당신이 원하는 클래스의 이름을 줄 것입니다. >>> import itertools >>> x = itertools.count(0) >>> type(x).__name__ 'count' 여전히 Python 2를 사용하는 경우 위의 방법은 ..

Python 소스에서 UTF-8 인코딩 작업

질문 : Python 소스에서 UTF-8 인코딩 작업 중히 여기다: $ cat bla.py u = unicode('d…') s = u.encode('utf-8') print s $ python bla.py File "bla.py", line 1 SyntaxError: Non-ASCII character '\xe2' in file bla.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details 소스 코드에서 UTF-8 문자열을 어떻게 선언 할 수 있습니까? 답변 소스 헤더에서 다음을 선언 할 수 있습니다. #!/usr/bin/env python # -*- coding: utf-8 -*- ....

공백으로 파이썬 문자열을 채우는 방법

질문 : 공백으로 파이썬 문자열을 어떻게 채울 수 있습니까? 공백으로 문자열을 채우고 싶습니다. 다음은 0으로 작동한다는 것을 알고 있습니다. >>> print "'%06d'"%4 '000004' 하지만 이것을 원할 때 어떻게해야합니까? : 'hi ' 물론 문자열 길이를 측정하고 str+" "*leftover 수행 할 수 있지만 가장 짧은 방법을 원합니다. 답변 str.ljust(width[, fillchar]) 하여이를 수행 할 수 있습니다. width 길이의 문자열에서 왼쪽 정렬 된 문자열을 반환합니다. 패딩은 지정된 fillchar를 사용하여 수행됩니다 (기본값은 공백). width len(s) 보다 작 으면 원래 문자열이 반환됩니다. >>> 'hi'.ljust(10) 'hi ' 출처 : https..

Python 프로그래밍할때 추천하는 IDE 편집기

질문 : Python에 사용할 IDE는 무엇입니까? 다른 사람들이 Python 코딩에 사용하는 IDE ( "GUI / 편집기")는 무엇입니까? 답변 스프레드 시트 버전 또는 일반 텍스트 : ( 스크린 샷 으로도 사용 가능) Bracket Matching -. .- Line Numbering Smart Indent -. | | .- UML Editing / Viewing Source Control Integration -. | | | | .- Code Folding Error Markup -. | | | | | | .- Code Templates Integrated Python Debugging -. | | | | | | | | .- Unit Testing Multi-Language Support -. |..

파이썬에서 __all__을 사용하는 이유

질문 : 누군가 파이썬에서 __all__을 설명 할 수 있습니까? 저는 Python을 점점 더 많이 사용하고 있으며 다른 __init__.py 파일에 __all__ 누군가 이것이 무엇을 설명 할 수 있습니까? 답변 import * 로 해석되는 해당 모듈의 공용 객체 목록입니다. 밑줄로 시작하는 모든 항목을 숨기는 기본값을 재정의합니다. 출처 : https://stackoverflow.com/questions/44834/can-someone-explain-all-in-python

Python Pandas의 기존 DataFrame에 새 열 추가하는 방법

질문 : Python Pandas의 기존 DataFrame에 새 열 추가 연속 번호가 아닌 명명 된 열과 행이있는 다음 인덱싱 된 DataFrame이 있습니다. a b c d 2 0.671399 0.101208 -0.181532 0.241273 3 0.446172 -0.243316 0.051767 1.577318 5 0.614758 0.075793 -0.451460 -0.012493 'e' 를 추가하고 데이터 프레임에서 아무것도 변경하고 싶지 않습니다 (즉, 새 열의 길이는 항상 DataFrame과 동일 함). 0 -0.335485 1 -1.166658 2 -0.385571 dtype: float64 위의 예에 e 열을 어떻게 추가 할 수 있습니까? 답변 2017 편집 주석과 @Alexander에서 알 ..

파이썬의 time.clock () vs time.time () 보다 정확한 것

질문 : 파이썬의 time.clock () 대 time.time () 정확도? 파이썬에서 타이밍에 사용하는 것이 더 낫습니까? time.clock () 또는 time.time ()? 어느 것이 더 정확합니까? 예를 들면 : start = time.clock() ... do something elapsed = (time.clock() - start) 대 start = time.time() ... do something elapsed = (time.time() - start) 답변 3.3부터 time.clock () 은 더 이상 사용되지 않으며 대신 time.process_time () 또는 time.perf_counter ()를 사용하는 것이 좋습니다. 이전 2.7에서 time 모듈 문서 에 따르면 : t..

Python의 try-except-else문

질문 : Python에서 try-except-else를 사용하는 것이 좋은 습관입니까? 때때로 파이썬에서 나는 블록을 본다. try: try_this(whatever) except SomeException as exception: #Handle exception else: return something try-except-else가 존재하는 이유는 무엇입니까? 나는 흐름 제어를 수행하기 위해 예외를 사용하기 때문에 그런 종류의 프로그래밍을 좋아하지 않습니다. 그러나 그것이 언어에 포함되어 있다면 그에 대한 정당한 이유가있을 것입니다. 예외는 오류가 아니며 예외적 인 조건 (예 : 디스크에 파일을 쓰려고하는데 더 이상 공간이 없거나 권한이 없을 수 있음)에만 사용해야하며 흐름을 위해서가 아니라는 점을 이해..

파이썬 try-else절의 용도

질문 : 파이썬 try-else try 문의 else 절의 용도는 무엇입니까? 답변 else 블록의 문은 try 의 맨 아래에서 떨어지면 실행됩니다 (예외가없는 경우). 솔직히 저는 필요를 찾지 못했습니다. 그러나 예외 처리 참고 사항 : else 절을 사용하는 것이 try ... except 문으로 보호되는 코드에 의해 발생하지 않은 예외를 실수로 포착하는 것을 방지하기 때문에 try 절에 추가 코드를 추가하는 것보다 낫습니다. IOError throw 할 수있는 메서드가 있고 발생하는 예외를 포착하고 싶지만 첫 번째 작업이 성공하면 IOError를 포착하고 싶지 않은 경우 수행 할 다른 작업이 있습니다. 이 작업에서 다음과 같이 작성할 수 있습니다. try: operation_that_can_thro..

TypeError: a bytes-like object is required, not 'str' when writing to a file in Python3

질문 : TypeError : Python3에서 파일에 쓸 때 'str'이 아닌 바이트 열류 객체가 필요합니다. 저는 최근에 Py 3.5로 마이그레이션했습니다. 이 코드는 Python 2.7에서 제대로 작동했습니다. with open(fname, 'rb') as f: lines = [x.strip() for x in f.readlines()] for line in lines: tmp = line.strip().lower() if 'some-pattern' in tmp: continue # ... code 3.5로 업그레이드 한 후 다음을 얻었습니다. TypeError: a bytes-like object is required, not 'str' 마지막 줄 (패턴 검색 코드)에 오류가 있습니다. .deco..

Python 스크립트를 프로파일링 하는 방법

질문 : Python 스크립트를 어떻게 프로파일 링 할 수 있습니까? 프로젝트 오일러 및 기타 코딩 콘테스트는 종종 최대 실행 시간을 갖거나 사람들은 특정 솔루션 실행 속도를 자랑합니다. 파이썬에서는 때때로 접근 방식이 다소 복잡합니다. 즉, 타이밍 코드를 __main__ 추가합니다. Python 프로그램이 실행되는 데 걸리는 시간을 프로파일 링하는 좋은 방법은 무엇입니까? 답변 Python에는 cProfile 이라는 프로파일 러가 포함되어 있습니다. 총 실행 시간을 제공 할뿐만 아니라 각 함수의 시간을 개별적으로 계산하고 각 함수가 호출 된 횟수를 알려줌으로써 어디서 최적화해야하는지 쉽게 결정할 수 있습니다. 다음과 같이 코드 내에서 또는 인터프리터에서 호출 할 수 있습니다. import cProfil..

파이썬 파일 확장자 .pyc .pyd .pyo가 의미하는 것

질문 : 파이썬 파일 확장자 .pyc .pyd .pyo는 무엇을 의미합니까? 이 파이썬 파일 확장자는 무엇을 의미합니까? .pyc .pyd .pyo 이들 간의 차이점은 무엇이며 * .py 파일에서 어떻게 생성됩니까? 답변 .pyc 대 .pyo 에 대한 추가 논의는 http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (아래에서 중요한 부분을 복사했습니다)을 참조하십시오. Python 인터프리터가 -O 플래그로 호출되면 최적화 된 코드가 생성되어 '.pyo'파일에 저장됩니다. 최적화 프로그램은 현재별로 도움이되지 않습니다. assert 문만 제거합니다. -O를 사용하면 모든 바이트 코드가 최적화됩니다. .pyc 파일은 무시되고 .py 파일..

프로그램을 실행하거나 Python에서 시스템 명령을 호출하는 방법

질문 : 프로그램을 실행하거나 Python에서 시스템 명령을 호출하는 방법 Python 스크립트 내에서 외부 명령을 어떻게 호출합니까 (유닉스 셸 또는 Windows 명령 프롬프트에 입력 한 것처럼)? 답변 표준 라이브러리에서 subprocess 모듈을 사용합니다. import subprocess import sys command = subprocess.run(['ls', '-l'], capture_output=True) sys.stdout.buffer.write(command.stdout) sys.stderr.buffer.write(command.stderr) sys.exit(command.returncode) os.system 보다 subprocess.run 의 장점은 더 유연하다는 것입니다 ( st..

Python 3에서 "python -m SimpleHTTPServer" 사용하는법

질문 : "python -m SimpleHTTPServer"에 해당하는 Python 3은 무엇입니까? python -m SimpleHTTPServer 해당하는 Python 3은 무엇입니까? 답변 문서에서 : SimpleHTTPServer 모듈은 Python 3.0에서 http.server 로 병합되었습니다. 2to3 도구는 소스를 3.0으로 변환 할 때 가져 오기를 자동으로 조정합니다. 따라서 명령은 python -m http.server 이거나 설치에 따라 다음과 같을 수 있습니다. python3 -m http.server 출처 : https://stackoverflow.com/questions/7943751/what-is-the-python-3-equivalent-of-python-m-simpleht..

Python에서 YAML 파일을 구문 분석하는 방법

질문 : Python에서 YAML 파일을 구문 분석하는 방법 Python에서 YAML 파일을 어떻게 구문 분석 할 수 있습니까? 답변 C 헤더에 의존하지 않는 가장 쉽고 순수한 방법은 pip install pyyaml 통해 설치할 수있는 PyYaml (documentation )입니다. #!/usr/bin/env python import yaml with open("example.yaml", "r") as stream: try: print(yaml.safe_load(stream)) except yaml.YAMLError as exc: print(exc) 그리고 그게 다야. 일반 yaml.load() 함수도 있지만, 임의 코드 실행 가능성을 피하기 위해 제공된 임의 객체 직렬화 / 역 직렬화가 명시 적으로..

Python에서 리스트 시작 부분에 정수 추가하는 방법

질문 : Python에서 목록 시작 부분에 정수 추가 정수와 목록이 있습니다. 변수로 시작하여 목록으로 끝나는 새 목록을 만들고 싶습니다. a + list 작성하면 오류가 발생합니다. 컴파일러는 a 를 정수로 처리하므로 추가하거나 확장 할 수 없습니다. 어떻게 하시겠습니까? 답변 >>>var=7 >>>array = [1,2,3,4,5,6] >>>array.insert(0,var) >>>array [7, 1, 2, 3, 4, 5, 6] 작동 원리 : array.insert(index, value) 주어진 위치에 항목을 삽입합니다. 첫 번째 인수는 삽입 할 요소의 인덱스이므로 array.insert(0, x) 는 목록의 맨 앞에 삽입되고 array.insert(len(array), x) array.appen..

내 스크립트를 실행중인 Python 버전을 확인하는 방법

질문 : 내 스크립트를 실행중인 Python 버전을 어떻게 확인합니까? 내 스크립트를 해석하는 Python Interpreter의 버전을 어떻게 확인할 수 있습니까? 답변 이 정보는 sys 모듈 sys.version 문자열에서 사용할 수 있습니다. >>> import sys 사람이 읽을 수있는 기능 : >>> print(sys.version) # parentheses necessary in python 3. 2.5.2 (r252:60911, Jul 31 2008, 17:28:52) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] 추가 처리를 위해 sys.version_info 또는 sys.hexversion 사용하십시오. >>> sys.version_info (2, 5, 2, 'final..

Python으로 파일에 리스트를 작성하는 방법

질문 : Python으로 파일에 목록 작성 writelines() 가 개행 문자를 삽입하지 않기 때문에 이것이 파일에 목록을 쓰는 가장 깨끗한 방법입니까? file.writelines(["%s\n" % item for item in list]) 표준적인 방법이있을 것 같습니다 ... 답변 루프를 사용할 수 있습니다. with open('your_file.txt', 'w') as f: for item in my_list: f.write("%s\n" % item) Python 2에서는 다음을 사용할 수도 있습니다. with open('your_file.txt', 'w') as f: for item in my_list: print >> f, item 단일 함수 호출에 관심이 있다면 적어도 대괄호 [] 제거하여..

파이썬 키워드 "with"의 사용법

질문 : 파이썬 키워드 "with"는 무엇에 사용됩니까? 파이썬 키워드 "with"는 무엇에 사용됩니까? 예 : http://docs.python.org/tutorial/inputoutput.html >>> with open('/tmp/workfile', 'r') as f: ... read_data = f.read() >>> f.closed True 답변 Python에서 with 키워드는 관리되지 않는 리소스 (예 : 파일 스트림)로 작업 할 때 사용됩니다. VB.NET 및 C # using 문과 유사합니다. 이를 통해 예외가 발생하더라도 리소스를 사용하는 코드가 실행을 완료하면 리소스가 "정리"되도록 할 수 있습니다. try/finally 블록에 '구문 설탕'을 제공합니다. Python 문서에서 : w..

Python Pandas 오류 pandas.parser.CParserError: Error tokenizing data.

질문 : Python Pandas 오류 토큰 화 데이터 pandas를 사용하여 .csv 파일을 조작하려고하는데이 오류가 발생합니다. pandas.parser.CParserError : 데이터 토큰 화 오류. C 오류 : 3 행에 2 개의 필드가 있어야합니다. pandas 문서를 읽으려고했지만 아무것도 찾지 못했습니다. 내 코드는 간단합니다. path = 'GOOG Key Ratios.csv' #print(open(path).read()) data = pd.read_csv(path) 어떻게 해결할 수 있습니까? csv 모듈이나 다른 언어를 사용해야합니까? 모닝 스타의 파일 답변 시도해 볼 수도 있습니다. data = pd.read_csv('file1.csv', error_bad_lines=False) 이렇..

728x90
반응형