본문 바로가기

Python/Python FAQ540

Python 파이썬에서 "with open"을 사용하여 여러 파일을 어떻게 열 수 있나요?, How can I open multiple files using "with open" in Python? 질문 한 번에 여러 파일을 변경하려고 합니다. 그러나 모든 파일에 쓸 수 있는 경우에만 iff를 작성할 수 있습니다. 여러 개의 열린 호출을 with 문과 결합할 수 있는 방법이 있는지 궁금합니다: try: with open('a', 'w') as a and open('b', 'w') as b: do_something() except IOError as e: print 'Operation failed: %s' % e.strerror 그렇지 않은 경우, 이 문제에 대한 우아한 해결책은 무엇일까요? 답변 Python 2.7 (또는 3.1)부터는 다음과 같이 작성할 수 있습니다. with open('a', 'w') as a, open('b', 'w') as b: do_something() (역사적 참고: 이전.. 2023. 6. 10.
Python 객체 목록을 섞기 [중복], Shuffling a list of objects [duplicate] 질문 객체 목록을 섞는 방법은 무엇인가요? random.shuffle를 시도해보았지만: import random b = [object(), object()] print(random.shuffle(b)) 다음과 같이 출력됩니다: None 답변 random.shuffle은 작동해야합니다. 여기에는 객체가 목록 인 예제가 있습니다. from random import shuffle x = [[i] for i in range(10)] shuffle(x) print(x) # print(x) gives [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]] shuffle이 in place에서 작동하고 None을 반환한다는 것에 유의하십시오. 일반적으로 Python에서 가변 객체는 .. 2023. 6. 10.
Python 파이썬 코드가 함수에서 더 빠르게 실행되는 이유는 무엇인가요?, Why does Python code run faster in a function? 질문 def main(): for i in xrange(10**8): pass main() 이 파이썬 코드는 다음과 같습니다. (참고: 시간 측정은 리눅스의 BASH에서 time 함수를 사용합니다.) real 0m1.841s user 0m1.828s sys 0m0.012s 그러나 for 루프가 함수 내에 없으면, for i in xrange(10**8): pass 그러면 훨씬 더 오랜 시간 동안 실행됩니다: real 0m4.543s user 0m4.524s sys 0m0.012s 이유는 무엇인가요? 답변 함수 내부에서 바이트코드는 다음과 같습니다: 2 0 SETUP_LOOP 20 (to 23) 3 LOAD_GLOBAL 0 (xrange) 6 LOAD_CONST 3 (100000000) 9 CALL_FUN.. 2023. 6. 10.
Python 현재 디렉토리의 모든 하위 디렉토리 목록 가져오기, Getting a list of all subdirectories in the current directory 질문 Python에서 현재 디렉토리의 모든 하위 디렉토리 목록을 반환하는 방법이 있나요? 파일로는 이것을 할 수 있다는 것을 알고 있지만, 대신 디렉토리 목록을 얻어야 합니다. 답변 당신이 말하는 것은 즉시 하위 디렉토리를 의미하는 것인가, 아니면 트리 아래 모든 디렉토리를 의미하는 것인가요? 어떤 방식이든, 이를 수행하기 위해 os.walk를 사용할 수 있습니다: os.walk(directory) 각 하위 디렉토리에 대해 튜플을 생성합니다. 3-tuple의 첫 번째 항목은 디렉토리 이름입니다. 따라서 [x[0] for x in os.walk(directory)] 은 재귀적으로 모든 하위 디렉토리를 알려줍니다. 튜플의 두 번째 항목이 첫 번째 위치의 엔트리의 하위 디렉토리 목록이기 때문에 대신 이것을 사.. 2023. 6. 10.