본문 바로가기

pythonic9

Python 파일 출력과 함께 디렉토리 자동 생성하기 [중복], Automatically creating directories with file output [duplicate] 질문 파일을 만들고 싶다고 가정해 봅시다: filename = "/foo/bar/baz.txt" with open(filename, "w") as f: f.write("FOOBAR") 이렇게 하면 IOError가 발생합니다. 왜냐하면 /foo/bar가 존재하지 않기 때문입니다. 이러한 디렉토리를 자동으로 생성하는 가장 파이썬다운 방법은 무엇인가요? 모든 디렉토리에 대해 명시적으로 os.path.exists와 os.mkdir를 호출해야 할 필요가 있을까요? (예: /foo, 그리고 /foo/bar) 답변 Python 3.2+에서는 OP가 요청한 API를 사용하여 다음을 우아하게 할 수 있습니다: import os filename = "/foo/bar/baz.txt" os.makedirs(os.path.di.. 2023. 10. 13.
Python 다른 목록에서 한 목록에 있는 모든 요소를 제거하세요., Remove all the elements that occur in one list from another 질문 두 개의 리스트 l1과 l2가 있다고 가정해봅시다. l1 - l2를 수행하고 싶은데, 이는 l2에 없는 l1의 모든 요소를 반환합니다. 이를 위해 무식한 반복문 접근 방식을 생각할 수는 있지만, 이는 매우 비효율적일 것입니다. 이를 파이썬다운 방식으로 효율적으로 수행하는 방법은 무엇일까요? 예를 들어, l1 = [1,2,6,8]이고 l2 = [2,3,5,8]일 때, l1 - l2는 [1,6]을 반환해야 합니다. 답변 파이썬에는 이러한 작업을 매우 쉽게 수행 할 수있는 리스트 컴프리헨션(List Comprehensions)이라는 언어 기능이 있습니다. 다음 문장은 원하는 작업을 정확히 수행하고 결과를 l3에 저장합니다: l3 = [x for x in l1 if x not in l2] l3에는 [1, .. 2023. 9. 14.
Python에서 None 테스트 [중복], not None test in Python [duplicate] 질문 Out of these not None tests. if val != None: if not (val is None): if val is not None: 어느 것이 선호되며, 왜 그런가? 답변 if val is not None: # ... None이 아닌 변수를 테스트하는 Pythonic 관용구입니다. 이 관용구는 기본 매개변수를 갖는 키워드 함수를 선언할 때 특별한 용도가 있습니다. Python에서 is는 동일성을 테스트합니다. Python 스크립트/프로그램에서 None의 인스턴스는 하나뿐이므로, 이를 위한 최적의 테스트는 is입니다. Johnsyweb이 지적한 바와 같이, 이 내용은 "프로그래밍 권장사항"으로 PEP 8에서 설명되어 있습니다. if not (val is None):보다 이것이 .. 2023. 6. 25.
Python 문자열 목록에서 빈 문자열을 제거합니다., Remove empty strings from a list of strings 질문 나는 파이썬에서 문자열 목록에서 모든 빈 문자열을 제거하고 싶습니다. 내 아이디어는 다음과 같습니다: while '' in str_list: str_list.remove('') 이것을 더 파이썬스럽게 할 수 있는 방법이 있나요? 답변 나는 filter를 사용할 것이다: str_list = filter(None, str_list) str_list = filter(bool, str_list) str_list = filter(len, str_list) str_list = filter(lambda item: item, str_list) Python 3는 filter에서 이터레이터를 반환하기 때문에 list() 호출로 래핑해야 한다. str_list = list(filter(None, str_list)) 2023. 6. 7.