본문 바로가기

python3.12

Python 파이썬에서 "with" 블록 내에서 return을 사용하면 파일이 여전히 닫히나요?, In Python, if I return inside a "with" block, will the file still close? 질문 다음을 고려해보세요: with open(path, mode) as f: return [line for line in f if condition] 파일은 제대로 닫힐까요? 아니면 return을 사용하는 것이 컨텍스트 매니저를 우회하는 방법이 있을까요? 답변 예, 이것은 try 블록 이후에 finally 블록처럼 작동합니다. 즉, 항상 실행됩니다 (물론 파이썬 프로세스가 비정상적인 방식으로 종료되지 않는 한). with 문의 사양인 PEP-343의 예제 중 하나에도 언급되어 있습니다. with locked(myLock): # 이곳의 코드는 myLock이 보유 될 때 실행됩니다. 블록을 떠날 때 락이 # 해제되는 것이 보장됩니다 (반환 또는 처리되지 않은 예외로 인해 블록을 떠날 경우에도). 그러나 언급.. 2023. 12. 7.
Python 파이썬의 .replace() 정규식 [중복]을 번역해주세요., python .replace() regex [duplicate] 질문 나는 '' 태그 이후의 모든 것을 잡아내고 삭제하려고 시도하고 있지만, 내 코드는 아무 작업도 수행하지 않는 것 같습니다. .replace()는 정규식을 지원하지 않나요? z.write(article.replace('.+', '')) 답변 No. 파이썬에서 정규 표현식은 re 모듈로 처리됩니다. article = re.sub(r'(?is).+', '', article) 일반적으로: str_output = re.sub(regex_search_term, regex_replacement, str_input) 2023. 11. 3.
Python argparse 도움말 텍스트에 줄 바꿈을 삽입하는 방법은 무엇인가요?, How to insert newlines on argparse help text? 질문 나는 파이썬 2.7에서 argparse를 사용하여 입력 옵션을 구문 분석하고 있습니다. 내 옵션 중 하나는 다중 선택입니다. 도움말 텍스트에서 목록을 만들고 싶습니다. 예를 들어, from argparse import ArgumentParser parser = ArgumentParser(description='test') parser.add_argument('-g', choices=['a', 'b', 'g', 'd', 'e'], default='a', help="일부 옵션, 여기서\n" " a = 알파\n" " b = 베타\n" " g = 감마\n" " d = 델타\n" " e = 엡실론") parser.parse_args() 하지만 argparse는 모든 줄 바꿈과 연속된 공백을 제거합니다. 결과.. 2023. 10. 26.
Python 가상환경 안에서 파이썬이 실행 중인지 확인하세요., Determine if Python is running inside virtualenv 질문 현재 스크립트가 가상 환경 내에서 실행되고 있는지 확인할 수 있을까요? 답변 신뢰할 수 있고 문서화된 방법은 sys.prefix와 sys.base_prefix를 비교하는 것입니다. 동일하다면 가상 환경이 아니고, 그렇지 않다면 가상 환경입니다. 가상 환경 안에서 sys.prefix는 가상 환경의 디렉토리를 가리키고, sys.base_prefix는 환경을 생성한 Python 인터프리터를 가리킵니다. 이는 venv의 작동 방식에 문서화되어 있습니다: 현재 인터프리터가 가상 환경에서 실행 중인지 확인하려면 sys.prefix != sys.base_prefix를 확인하는 것만으로 충분합니다. 이 방법은 Python 표준 라이브러리인 venv와 virtualenv (버전 20부터)에서 작동합니다: def i.. 2023. 10. 24.