본문 바로가기

IOERROR4

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 PIL을 사용하여 이미지 크기를 조정하고 종횡비를 유지하는 방법은 무엇인가요?, How do I resize an image using PIL and maintain its aspect ratio? 질문 이걸 놓친 명백한 방법이 있을까요? 썸네일을 만들려고만 하는 중입니다. 답변 최대 크기를 정의합니다. 그런 다음 min(maxwidth/width, maxheight/height)를 사용하여 크기 조정 비율을 계산합니다. 적절한 크기는 oldsize*ratio입니다. 물론 이를 수행하는 라이브러리 메서드도 있습니다: Image.thumbnail 메서드입니다. 아래는 PIL 문서에서 가져온 (편집된) 예제입니다. import os, sys import Image size = 128, 128 for infile in sys.argv[1:]: outfile = os.path.splitext(infile)[0] + ".thumbnail" if infile != outfile: try: im = Image... 2023. 9. 9.
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의 open()은 파일이 존재하지 않으면 파일을 생성하지 않습니다., open() in Python does not create a file if it doesn't exist 질문 존재하면 읽기/쓰기로 파일을 열고, 그렇지 않으면 만들어서 읽기/쓰기로 열려면 어떤 것이 가장 좋을까요? 내가 읽은 것으로는 file = open('myfile.dat', 'rw')이렇게 하면 되는 거 아니에요? 그게 제 컴퓨터에서 (파이썬 2.6.2) 작동하지 않는데, 이게 버전 문제인지, 아니면 그렇게 작동하지 않는 건 아닌지 궁금합니다. 요점은, 그냥 문제를 해결할 수 있는 방법이 필요합니다. 다른 것도 궁금하지만, 열기 부분만 잘 해결할 수 있는 좋은 방법이 필요합니다. 폴더는 사용자와 그룹에 의해 쓰기 가능하게 설정되어 있었고, 다른 사용자는 쓰기 권한이 없었습니다 (리눅스 시스템이기 때문에 권한 775라는 뜻입니다). 정확한 오류 메시지는 다음과 같습니다: IOError: no such .. 2023. 6. 10.