Python의 파일 처리
Python에서 파일 처리 광범위한 작업을 수행하는 데 사용할 수 있는 강력하고 다양한 도구입니다. 그러나 Python 프로그램을 작성할 때 파일 처리의 장점과 단점을 신중하게 고려하여 코드가 안전하고 안정적이며 제대로 작동하는지 확인하는 것이 중요합니다.
이 기사에서 우리는 탐구할 것이다 Python 파일 처리, 장점, 단점 및 Python 파일에서 열기, 쓰기 및 추가 기능이 작동하는 방식.
Python 파일 처리
Python은 파일 처리를 지원하며 사용자가 파일을 처리할 수 있도록 합니다. 즉, 파일 읽기 및 쓰기와 함께 다른 많은 파일 처리 옵션과 함께 파일 작업을 수행할 수 있습니다. 파일 처리의 개념은 다양한 다른 언어로 확장되었지만 구현은 Python의 다른 개념과 마찬가지로 복잡하거나 길지만 여기서 이 개념도 쉽고 짧습니다. 파이썬 파일을 텍스트 또는 바이너리로 다르게 처리하며 이것이 중요합니다. 각 코드 줄에는 일련의 문자가 포함되어 있으며 텍스트 파일을 형성합니다. 파일의 각 줄은 특수 문자로 끝납니다. 단종 또는 줄 끝 같은 캐릭터 반점 {,} 또는 개행 문자. 현재 줄을 끝내고 통역사에게 새 줄이 시작되었음을 알려줍니다. 파일을 읽고 쓰는 것부터 시작해 보겠습니다.
Python의 파일 처리 장점
- 다재 : Python의 파일 처리를 사용하면 파일 생성, 읽기, 쓰기, 추가, 이름 바꾸기 및 삭제와 같은 광범위한 작업을 수행할 수 있습니다.
- 유연성 : Python의 파일 처리는 다양한 파일 형식(예: 텍스트 파일, 바이너리 파일, CSV 파일 등) 및 파일에 대한 다양한 작업(예: 읽기, 쓰기, 추가 등)을 수행합니다.
- 사용자 – 친숙한 : Python은 파일 처리를 위한 사용자 친화적인 인터페이스를 제공하므로 파일을 쉽게 생성하고 읽고 조작할 수 있습니다.
- 크로스 플랫폼 : Python 파일 처리 기능은 다양한 플랫폼(예: Windows, Mac, Linux)에서 작동하므로 원활한 통합과 호환성이 가능합니다.
Python에서 파일 처리의 단점
- 발생하기 쉬운 오류: Python의 파일 처리 작업은 특히 코드를 주의 깊게 작성하지 않았거나 파일 시스템에 문제(예: 파일 권한, 파일 잠금 등)가 있는 경우 오류가 발생하기 쉽습니다.
- 보안 위험 : Python의 파일 처리는 특히 프로그램이 시스템의 민감한 파일에 액세스하거나 수정하는 데 사용할 수 있는 사용자 입력을 허용하는 경우 보안 위험을 초래할 수 있습니다.
- 복잡성 : Python의 파일 처리는 특히 고급 파일 형식이나 작업을 사용할 때 복잡할 수 있습니다. 파일이 적절하고 안전하게 처리되도록 하려면 코드에 세심한 주의를 기울여야 합니다.
- 성능 : Python의 파일 처리 작업은 특히 대용량 파일을 처리하거나 복잡한 작업을 수행할 때 다른 프로그래밍 언어보다 느릴 수 있습니다.
이 기사에서는 다음 사항을 고려할 것입니다. 괴짜.txt 파일을 예로 들어보겠습니다.
Hello world techcodeview.com 123 456
Python 파일 열기
읽기나 쓰기와 같은 파일 작업을 수행하기 전에 먼저 해당 파일을 열어야 합니다. 이를 위해 Python의 내장 함수를 사용해야 합니다. 열려 있는() 하지만 파일을 열 때 파일을 여는 목적을 나타내는 모드를 지정해야 합니다.
f = open(filename, mode)
다음 모드가 지원되는 경우:
- 아르 자형: 읽기 작업을 위해 기존 파일을 엽니다.
- 안에: 쓰기 작업을 위해 기존 파일을 엽니다. 파일에 이미 일부 데이터가 포함되어 있으면 재정의되지만 파일이 없으면 파일도 생성됩니다.
- ㅏ: 추가 작업을 위해 기존 파일을 엽니다. 기존 데이터를 재정의하지 않습니다.
- r+: 파일에서 데이터를 읽고 쓰는 것입니다. 파일의 이전 데이터가 재정의됩니다.
- w+: 데이터를 쓰고 읽습니다. 기존 데이터를 재정의합니다.
- a+: 파일에서 데이터를 추가하고 읽습니다. 기존 데이터를 재정의하지 않습니다.
읽기 모드에서 작업
방법은 여러 가지가 있습니다 Python에서 파일을 읽는 방법 . 읽기 모드에서 파일의 내용을 어떻게 읽는지 살펴보겠습니다.
예시 1: open 명령은 읽기 모드에서 Python 파일을 열고 for 루프는 파일에 있는 각 줄을 인쇄합니다.
파이썬3
# a file named 'geek', will be opened with the reading mode.> file> => open> (> 'geek.txt'> ,> 'r'> )> # This will print every line one by one in the file> for> each> in> file> :> > print> (each)> |
산출:
Hello world techcodeview.com 123 456
예시 2: 이 예에서는 Python 파일의 모든 문자를 포함하는 문자열을 추출한 다음 사용할 수 있습니다. 파일.읽기() .
파이썬3
# Python code to illustrate read() mode> file> => open> (> 'geeks.txt'> ,> 'r'> )> print> (> file> .read())> |
산출:
Hello world techcodeview.com 123 456
예시 3: 이 예에서는 다음을 사용하여 파일을 읽는 방법을 살펴보겠습니다. ~와 함께 성명 파이썬에서.
파이썬3
# Python code to illustrate with()> with> open> (> 'geeks.txt'> ) as> file> :> > data> => file> .read()> print> (data)> |
산출:
Hello world techcodeview.com 123 456
예시 4: 파일을 읽는 또 다른 방법은 다음 코드와 같이 특정 개수의 문자를 호출하는 것입니다. 인터프리터는 저장된 데이터의 처음 5개 문자를 읽고 이를 문자열로 반환합니다.
파이썬3
# Python code to illustrate read() mode character wise> file> => open> (> 'geeks.txt'> ,> 'r'> )> print> (> file> .read(> 5> ))> |
산출:
Hello
예시 5: Python에서 파일을 읽는 동안 줄을 나눌 수도 있습니다. Split() 함수는 공백이 발견되면 변수를 분할합니다. 원하는 대로 문자를 사용하여 분할할 수도 있습니다.
파이썬3
# Python code to illustrate split() function> with> open> (> 'geeks.txt'> ,> 'r'> ) as> file> :> > data> => file> .readlines()> > for> line> in> data:> > word> => line.split()> > print> (word)> |
산출:
['Hello', 'world'] ['techcodeview.com'] ['123', '456']
write() 함수를 사용하여 파일 생성
Python에서 파일을 읽는 것과 마찬가지로 여러 가지 방법으로 파일을 읽을 수 있습니다. Python으로 파일에 쓰기 . Python에서 write() 함수를 사용하여 파일의 내용을 어떻게 쓰는지 살펴보겠습니다.
쓰기 모드에서 작업
파일을 생성하는 방법과 쓰기 모드가 어떻게 작동하는지 살펴보겠습니다.
예시 1: 이 예에서는 쓰기 모드와 write() 함수를 사용하여 파일에 쓰는 방법을 살펴보겠습니다. close() 명령은 사용 중인 모든 리소스를 종료하고 이 특정 프로그램의 시스템을 해제합니다.
파이썬3
# Python code to create a file> file> => open> (> 'geek.txt'> ,> 'w'> )> file> .write(> 'This is the write command'> )> file> .write(> 'It allows us to write in a particular file'> )> file> .close()> |
산출:
This is the write commandIt allows us to write in a particular file
예시 2: with() 함수와 함께 작성된 명령문을 사용할 수도 있습니다.
파이썬3
# Python code to illustrate with() alongwith write()> with> open> (> 'file.txt'> ,> 'w'> ) as f:> > f.write(> 'Hello World!!!'> )> |
산출:
Hello World!!!
추가 모드 작동
추가 모드가 어떻게 작동하는지 살펴보겠습니다.
예: 이 예에서는 이전 예에서 만든 Python 파일을 사용합니다.
파이썬3
# Python code to illustrate append() mode> file> => open> (> 'geek.txt'> ,> 'a'> )> file> .write(> 'This will add this line'> )> file> .close()> |
산출:
This is the write commandIt allows us to write in a particular fileThis will add this line
Python 파일 처리에는 다양한 작업을 처리하는 데 사용되는 다양한 다른 명령도 있습니다.
rstrip(): This function strips each line of a file off spaces from the right-hand side. lstrip(): This function strips each line of a file off spaces from the left-hand side.
코드 작업 시 훨씬 더 깔끔한 구문과 예외 처리를 제공하도록 설계되었습니다. 이는 해당되는 경우 명령문과 함께 사용하는 것이 좋은 습관인 이유를 설명합니다. 이 방법을 사용하면 열려 있는 모든 파일이 작업이 완료된 후 자동으로 닫혀 자동 정리가 되기 때문에 유용합니다.
파일 처리의 모든 기능 구현
이 예에서는 위에서 본 모든 개념을 다룰 것입니다. 그 외에도 Python의 Remove() 함수를 사용하여 파일을 삭제하는 방법도 살펴보겠습니다. 운영 체제 모듈 .
파이썬3
import> os> def> create_file(filename):> > try> :> > with> open> (filename,> 'w'> ) as f:> > f.write(> 'Hello, world!
'> )> > print> (> 'File '> +> filename> +> ' created successfully.'> )> > except> IOError:> > print> (> 'Error: could not create file '> +> filename)> def> read_file(filename):> > try> :> > with> open> (filename,> 'r'> ) as f:> > contents> => f.read()> > print> (contents)> > except> IOError:> > print> (> 'Error: could not read file '> +> filename)> def> append_file(filename, text):> > try> :> > with> open> (filename,> 'a'> ) as f:> > f.write(text)> > print> (> 'Text appended to file '> +> filename> +> ' successfully.'> )> > except> IOError:> > print> (> 'Error: could not append to file '> +> filename)> def> rename_file(filename, new_filename):> > try> :> > os.rename(filename, new_filename)> > print> (> 'File '> +> filename> +> ' renamed to '> +> new_filename> +> ' successfully.'> )> > except> IOError:> > print> (> 'Error: could not rename file '> +> filename)> def> delete_file(filename):> > try> :> > os.remove(filename)> > print> (> 'File '> +> filename> +> ' deleted successfully.'> )> > except> IOError:> > print> (> 'Error: could not delete file '> +> filename)> if> __name__> => => '__main__'> :> > filename> => 'example.txt'> > new_filename> => 'new_example.txt'> > create_file(filename)> > read_file(filename)> > append_file(filename,> 'This is some additional text.
'> )> > read_file(filename)> > rename_file(filename, new_filename)> > read_file(new_filename)> > delete_file(new_filename)> |
산출:
File example.txt created successfully. Hello, world! Text appended to file example.txt successfully. Hello, world! This is some additional text. File example.txt renamed to new_example.txt successfully. Hello, world! This is some additional text. File new_example.txt deleted successfully.