Python-파일 I / O

이 장에서는 Python에서 사용할 수있는 모든 기본 I / O 함수를 다룹니다. 더 많은 함수는 표준 Python 문서를 참조하십시오.

화면에 인쇄

출력을 생성하는 가장 간단한 방법은 쉼표로 구분 된 0 개 이상의 표현식을 전달할 수 있는 print 문을 사용하는 것 입니다. 이 함수는 전달한 표현식을 문자열로 변환하고 결과를 다음과 같이 표준 출력에 씁니다.

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"

이것은 표준 화면에 다음 결과를 생성합니다-

Python is really a great language, isn't it?

키보드 입력 읽기

Python은 기본적으로 키보드에서 오는 표준 입력에서 텍스트 한 줄을 읽는 두 가지 내장 함수를 제공합니다. 이 기능은-

  • raw_input
  • input

raw_input을 기능

raw_input을가 ([프롬프트]) 함수는 문자열 (후행 개행 제거) 표준 입력으로부터 복귀 한 라인을 판독한다.

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

그러면 문자열을 입력하라는 메시지가 표시되고 화면에 동일한 문자열이 표시됩니다. "Hello Python!"을 입력했을 때 출력은 다음과 같습니다.

Enter your input: Hello Python
Received input is :  Hello Python

입력 기능

입력 ([프롬프트]) 함수는 입력이 유효한 파이썬 표현이며, 당신에게 평가 결과를 반환 가정 것을 제외하고 raw_input을하는 것과 같습니다.

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

이것은 입력 된 입력에 대해 다음과 같은 결과를 생성합니다-

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

파일 열기 및 닫기

지금까지 표준 입력 및 출력을 읽고 쓰고있었습니다. 이제 실제 데이터 파일을 사용하는 방법을 살펴 보겠습니다.

Python은 기본적으로 파일을 조작하는 데 필요한 기본 함수와 메서드를 제공합니다. 대부분의 파일 조작은file 목적.

개방 기능

파일을 읽거나 쓰기 전에 Python의 내장 open () 함수를 사용하여 파일을 열어야합니다 . 이 기능은file 관련된 다른 지원 메서드를 호출하는 데 사용됩니다.

통사론

file object = open(file_name [, access_mode][, buffering])

매개 변수 세부 사항은 다음과 같습니다.

  • file_name − file_name 인수는 액세스하려는 파일의 이름을 포함하는 문자열 값입니다.

  • access_mode− access_mode는 파일을 열어야하는 모드, 즉 읽기, 쓰기, 추가 등을 결정합니다. 가능한 값의 전체 목록은 아래 표에 나와 있습니다. 이는 선택적 매개 변수이며 기본 파일 액세스 모드는 읽기 (r)입니다.

  • buffering− 버퍼링 값이 0으로 설정되면 버퍼링이 발생하지 않습니다. 버퍼링 값이 1이면 파일에 액세스하는 동안 라인 버퍼링을 수행합니다. 버퍼링 값을 1보다 큰 정수로 지정하면 표시된 버퍼 크기로 버퍼링 작업이 수행됩니다. 음수이면 버퍼 크기가 시스템 기본값 (기본 동작)입니다.

다음은 파일을 여는 다양한 모드 목록입니다.

Sr. 아니. 모드 및 설명
1

r

읽기 전용으로 파일을 엽니 다. 파일 포인터는 파일 시작 부분에 위치합니다. 이것이 기본 모드입니다.

2

rb

바이너리 형식으로 만 읽기 위해 파일을 엽니 다. 파일 포인터는 파일 시작 부분에 위치합니다. 이것이 기본 모드입니다.

r+

읽기 및 쓰기를 위해 파일을 엽니 다. 파일 시작 부분에있는 파일 포인터입니다.

4

rb+

바이너리 형식으로 읽고 쓰기 위해 파일을 엽니 다. 파일 시작 부분에있는 파일 포인터입니다.

5

w

쓰기 전용으로 파일을 엽니 다. 파일이있는 경우 파일을 덮어 씁니다. 파일이 존재하지 않으면 쓰기를위한 새 파일을 만듭니다.

6

wb

바이너리 형식으로 만 쓰기 위해 파일을 엽니 다. 파일이있는 경우 파일을 덮어 씁니다. 파일이 존재하지 않으면 쓰기를위한 새 파일을 만듭니다.

7

w+

쓰기 및 읽기 용으로 파일을 엽니 다. 파일이있는 경우 기존 파일을 덮어 씁니다. 파일이 없으면 읽기 및 쓰기를위한 새 파일을 만듭니다.

8

wb+

바이너리 형식으로 쓰고 읽을 수있는 파일을 엽니 다. 파일이있는 경우 기존 파일을 덮어 씁니다. 파일이 없으면 읽기 및 쓰기를위한 새 파일을 만듭니다.

9

a

추가 할 파일을 엽니 다. 파일이있는 경우 파일 포인터는 파일의 끝에 있습니다. 즉, 파일이 추가 모드에 있습니다. 파일이 존재하지 않으면 쓰기를 위해 새 파일을 생성합니다.

10

ab

바이너리 형식으로 추가 할 파일을 엽니 다. 파일이있는 경우 파일 포인터는 파일의 끝에 있습니다. 즉, 파일이 추가 모드에 있습니다. 파일이 존재하지 않으면 쓰기를 위해 새 파일을 생성합니다.

11

a+

추가 및 읽기를 위해 파일을 엽니 다. 파일이있는 경우 파일 포인터는 파일의 끝에 있습니다. 파일이 추가 모드로 열립니다. 파일이 없으면 읽기 및 쓰기를위한 새 파일을 만듭니다.

12

ab+

이진 형식으로 추가하고 읽기 위해 파일을 엽니 다. 파일이있는 경우 파일 포인터는 파일의 끝에 있습니다. 파일이 추가 모드로 열립니다. 파일이 없으면 읽기 및 쓰기를위한 새 파일을 만듭니다.

파일 객체 속성

파일이 열리고 하나의 파일 개체가 있으면 해당 파일과 관련된 다양한 정보를 얻을 수 있습니다.

다음은 파일 객체와 관련된 모든 속성 목록입니다.

Sr. 아니. 속성 및 설명
1

file.closed

파일이 닫혀 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

2

file.mode

파일이 열린 액세스 모드를 반환합니다.

file.name

파일 이름을 반환합니다.

4

file.softspace

print에 공간이 명시 적으로 필요하면 false를 반환하고 그렇지 않으면 true를 반환합니다.

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

이것은 다음 결과를 생성합니다-

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb
Softspace flag :  0

가까운 () 메서드

파일 객체 의 close () 메서드는 기록 되지 않은 정보를 플러시하고 파일 객체를 닫습니다. 그 후에는 더 이상 기록을 수행 할 수 없습니다.

파이썬은 파일의 참조 객체가 다른 파일에 재 할당 될 때 자동으로 파일을 닫습니다. close () 메서드를 사용하여 파일을 닫는 것이 좋습니다.

통사론

fileObject.close()

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend file
fo.close()

이것은 다음 결과를 생성합니다-

Name of the file:  foo.txt

파일 읽기 및 쓰기

파일 객체는 우리의 삶을 더 쉽게 만드는 접근 방법의 집합을 제공합니다. read ()write () 메서드를 사용하여 파일을 읽고 쓰는 방법을 살펴 보겠습니다 .

쓰기 () 메소드

쓰기 () 메서드는 열린 파일에 문자열을 씁니다. Python 문자열은 텍스트뿐만 아니라 이진 데이터를 가질 수 있습니다.

write () 메소드는 문자열 끝에 개행 문자 ( '\ n')를 추가하지 않습니다.

통사론

fileObject.write(string)

여기서 전달 된 매개 변수는 열린 파일에 쓸 내용입니다.

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opend file
fo.close()

위의 방법은 foo.txt 파일 을 만들고 해당 파일에 주어진 내용을 쓰고 마지막으로 해당 파일을 닫습니다. 이 파일을 열면 다음과 같은 내용이있을 것입니다.

Python is a great language.
Yeah its great!!

읽기 () 메소드

읽기 () 메서드는 열려있는 파일에서 문자열을 읽습니다. 파이썬 문자열은 이진 데이터를 가질 수 있습니다. 텍스트 데이터와는 별개입니다.

통사론

fileObject.read([count])

여기서 전달 된 매개 변수는 열린 파일에서 읽을 바이트 수입니다. 이 메서드는 파일의 처음부터 읽기를 시작하고 count 가 누락 된 경우 파일 끝까지 가능한 한 많이 읽으려고합니다.

위에서 만든 foo.txt 파일을 가져와 보겠습니다 .

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close()

이것은 다음 결과를 생성합니다-

Read String is :  Python is

파일 위치

TELL () 메소드는 당신에게 파일 내에서 현재 위치를 알려줍니다; 즉, 다음 읽기 또는 쓰기는 파일 시작 부분에서 해당 수만큼의 바이트에서 발생합니다.

(오프셋 [에서]) 시크 방법은 현재의 파일의 위치를 바꾼다. 오프셋 인자 바이트 수를 이동시킬 나타낸다. 에서 인자 바이트가 이동하는 곳에서 상기 기준 위치를 지정한다.

경우 부터가 0으로 설정되어, 그 수단은 상기 기준 위치의 파일의 시작 부분을 사용하고 1 수단은 상기 기준 위치로 현재 위치를 사용하고, 그 후 2로 설정된 경우, 파일의 끝을 기준 위치로 간주 될 .

위에서 만든 foo.txt 파일을 가져와 보겠습니다 .

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print "Read String is : ", str

# Check current position
position = fo.tell()
print "Current file position : ", position

# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10)
print "Again read String is : ", str
# Close opend file
fo.close()

이것은 다음 결과를 생성합니다-

Read String is :  Python is
Current file position :  10
Again read String is :  Python is

파일 이름 변경 및 삭제

파이썬 os 모듈은 파일 이름 변경 및 삭제와 같은 파일 처리 작업을 수행하는 데 도움이되는 메서드를 제공합니다.

이 모듈을 사용하려면 먼저 가져온 다음 관련 함수를 호출 할 수 있습니다.

rename () 메서드

바꾸기 () 메소드는 두 개의 인자, 현재 파일 이름 및 새로운 파일명 걸린다.

통사론

os.rename(current_file_name, new_file_name)

다음은 기존의 파일 이름을 변경하는 예입니다 있는 test1.txt를 -

#!/usr/bin/python
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

제거 () 메소드

당신이 사용할 수있는 제거 () 인수로 삭제 될 파일의 이름을 제공하여 파일 삭제에 대한 방법을.

통사론

os.remove(file_name)

다음은 기존의 파일 삭제하는 예입니다 test2.txt가를 -

#!/usr/bin/python
import os

# Delete file test2.txt
os.remove("text2.txt")

Python의 디렉터리

모든 파일은 다양한 디렉토리에 포함되어 있으며 Python도 이러한 디렉토리를 처리하는 데 문제가 없습니다. 그만큼os 모듈에는 디렉토리를 생성, 제거 및 변경하는 데 도움이되는 몇 가지 방법이 있습니다.

에서 mkdir () 메소드

mkdir () 메서드를 사용할 수 있습니다 .os모듈을 사용하여 현재 디렉토리에 디렉토리를 만듭니다. 생성 할 디렉토리의 이름을 포함하는이 메소드에 인수를 제공해야합니다.

통사론

os.mkdir("newdir")

다음은 현재 디렉토리에서 디렉토리 테스트 를 생성하는 예입니다.

#!/usr/bin/python
import os

# Create a directory "test"
os.mkdir("test")

CHDIR () 메소드

chdir () 메소드를 사용하여 현재 디렉토리를 변경할 수 있습니다 . chdir () 메서드는 현재 디렉토리로 만들려는 디렉토리의 이름 인 인수를받습니다.

통사론

os.chdir("newdir")

다음은 "/ home / newdir"디렉토리로 이동하는 예입니다.

#!/usr/bin/python
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

에 getcwd () 메소드

에 getcwd () 방법은 현재 작업 디렉토리.

통사론

os.getcwd()

다음은 현재 디렉토리를 제공하는 예입니다-

#!/usr/bin/python
import os

# This would give location of the current directory
os.getcwd()

RMDIR () 메소드

RMDIR () 메소드는 메소드의 인수로 전달되는 디렉토리를 삭제합니다.

디렉토리를 제거하기 전에 그 안의 모든 내용을 제거해야합니다.

통사론

os.rmdir('dirname')

다음은 "/ tmp / test"디렉토리를 제거하는 예입니다. 디렉토리의 완전한 이름을 제공해야합니다. 그렇지 않으면 현재 디렉토리에서 해당 디렉토리를 검색합니다.

#!/usr/bin/python
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

파일 및 디렉토리 관련 방법

Windows 및 Unix 운영 체제에서 파일 및 디렉토리를 처리하고 조작하기위한 광범위한 유틸리티 방법을 제공하는 세 가지 중요한 소스가 있습니다. 그들은 다음과 같습니다-

  • 파일 객체 방법 : 파일 객체는 파일을 조작하는 기능을 제공합니다.

  • OS Object Methods : 파일과 디렉토리를 처리하는 방법을 제공합니다.