파이썬 연구 노트 -Python 파일 I / O

화면에 인쇄

가장 쉬운 방법은 인쇄 문 출력을 사용하는 것입니다, 당신은 그것을 0 개 이상의 쉼표로 구분 된 표현을 전달할 수 있습니다. 이 기능을 사용하면 문자열 표현을 통과으로 표현을 변환하고 다음되는 결과는 표준 출력에 기록됩니다 :

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

print "Python 是一个非常棒的语言,不是吗?"

표준 화면에 다음과 같은 결과를 생성합니다 :

Python 是一个非常棒的语言,不是吗?

읽기 키보드 입력

파이썬은 텍스트의 표준 입력 줄에서 내장 된 두 가지 기능을 제공, 기본 표준 입력은 키보드입니다. 으로는 다음과 같습니다 :

  • raw_input을
  • 입력

raw_input을 함수 (파이썬 2.X)

raw_input을가 ([프롬프트]) 함수는 표준 입력 라인을 판독하고, 문자열 (후단 개행 제거) 반환

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
str = raw_input("请输入:")
print "你输入的内容是: ", str

이것은 어떤 문자열을 입력하라는 메시지가 다음 화면에서 동일한 문자열을 표시합니다. 내가! "안녕하세요 파이썬"를 입력하면 출력은 다음입니다 :

请输入:Hello Python!
你输入的内容是:  Hello Python!

입력 기능

입력 ([프롬프트])  기능  에 raw_input ([프롬프트])  과 실질적으로 동일한 기능이지만 파이썬 식 입력을 입력으로서 수신 할 수 있고, 산출 결과는 리턴된다.

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
str = input("请输入:")
print "你输入的内容是: ", str

이 입력에 대응하여 다음과 같은 결과를 생성 할 것이다 :

请输入:[x*5 for x in range(2,10,2)]
你输入的内容是:  [10, 20, 30, 40]

개폐 파일

지금 당신은 읽고 표준 입력과 출력에 기록 할 수있다. 지금 읽고 실제 데이터 파일을 작성하는 방법을 살펴 보자.

파이썬은 필요한 기능 및 기본 파일 기본 조작 방법을 제공한다. 당신이 사용할 수있는  파일  객체가 대부분의 파일 작업을 수행하십시오.

open 함수

당신은 읽기 및 쓰기 위해 호출 할 수있는 파일 객체 관련 메소드를 작성, 파일을 열 파이썬의 내장 개방 () 함수를 사용해야합니다.

구문 :

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

다음과 같이 다양한 매개 변수의 세부 사항은 다음과 같습니다

  • FILE_NAME : FILE_NAME 변수는 액세스하려는 파일의 이름이 포함 된 문자열 값입니다.
  • ACCESS_MODE : 읽기, 쓰기, 및 추가 : ACCESS_MODE는 파일 모드를 열기로 결정했다. 로 다음과 모든 가능한 값의 전체 목록을 참조하십시오. 이 매개 변수는 필수는 기본 파일이 읽기 전용 액세스 모드 (R).
  • 버퍼링 : 버퍼링의 값으로 설정되어 있으면 0 ,있을 것이다 호스팅 . 경우 버퍼링의 값이 1을, 라인은 파일에 액세스하기 위해 등록합니다 . 경우에 값이 기억 영역의 버퍼 크기임을 나타내는 버퍼링 1보다 큰 정수이다 . 당신은 가지고가는 경우에 음의 값, 시스템 기본에 대한 버퍼 크기의 저장 영역을 .

파일의 다른 모드의 전체 목록을 엽니 다 (나 이진을 의미)

모드 기술
텍스트 모드 (기본값).
엑스 파일이 이미 오류가 발생하지 존재하는 경우 쓰기 모드, 새 파일을 만듭니다.
바이너리 모드.
+ (읽기 및 쓰기) 업데이트 된 파일을 엽니 다.
유니버설 랩 모드 (권장하지 않음).
아르 자형 읽기 전용 모드로 파일을 엽니 다. 포인터 파일은 파일의 시작 부분에 배치됩니다. 이 모드가 기본 모드입니다.
RB 읽기 전용 바이너리 형식의 파일을 엽니 다. 파일 포인터는 파일의 시작 부분에 배치됩니다. 이 모드가 기본 모드입니다. 일반적으로 같은 그림으로 등 비 텍스트 파일에 사용됩니다.
R + 읽고 쓰기 위해 파일을 엽니 다. 파일 포인터는 파일의 시작 부분에 배치됩니다.
RB + 읽고 바이너리 형식을 쓰기 위해 파일을 엽니 다. 파일 포인터는 파일의 시작 부분에 배치됩니다. 일반적으로 같은 그림으로 등 비 텍스트 파일에 사용됩니다.
w 쓰기 전용으로 파일을 엽니 다. 파일이 이미 다음 파일을 열고입니다 시작에서 편집을 시작있는 경우, 원본 콘텐츠가 삭제됩니다. 파일이 존재하지 않을 경우, 새 파일을 만듭니다.
WB 바이너리 형식으로 만 쓰기 위해 파일을 엽니 다. 파일이 이미 다음 파일을 열고입니다 시작에서 편집을 시작있는 경우, 원본 콘텐츠가 삭제됩니다. 파일이 존재하지 않을 경우, 새 파일을 만듭니다. 일반적으로 같은 그림으로 등 비 텍스트 파일에 사용됩니다.
+ w 읽고 쓰기 위해 파일을 엽니 다. 파일이 이미 다음 파일을 열고입니다 시작에서 편집을 시작있는 경우, 원본 콘텐츠가 삭제됩니다. 파일이 존재하지 않을 경우, 새 파일을 만듭니다.
WB + 읽고 바이너리 형식을 쓰기 위해 파일을 엽니 다. 파일이 이미 다음 파일을 열고입니다 시작에서 편집을 시작있는 경우, 원본 콘텐츠가 삭제됩니다. 파일이 존재하지 않을 경우, 새 파일을 만듭니다. 일반적으로 같은 그림으로 등 비 텍스트 파일에 사용됩니다.
APPEND의 파일을 엽니 다. 파일이 이미 존재하는 경우, 파일 포인터는 파일의 마지막에 배치됩니다. 즉, 새로운 내용은 기존 내용 뒤에 기록됩니다. 파일이 존재하지 않는 경우, 쓰기를위한 새 파일을 만듭니다.
부터 추가 바이너리 형식의 파일을 엽니 다. 파일이 이미 존재하는 경우, 파일 포인터는 파일의 마지막에 배치됩니다. 즉, 새로운 내용은 기존 내용 뒤에 기록됩니다. 파일이 존재하지 않는 경우, 쓰기를위한 새 파일을 만듭니다.
A + 읽고 쓰기 위해 파일을 엽니 다. 파일이 이미 존재하는 경우, 파일 포인터는 파일의 마지막에 배치됩니다. 파일을 열 때이 모드를 추가한다. 파일이 존재하지 않는 경우, 읽기, 쓰기를위한 새로운 파일을 만듭니다.
AB + 추가 바이너리 형식의 파일을 엽니 다. 파일이 이미 존재하는 경우, 파일 포인터는 파일의 마지막에 배치됩니다. 파일이 존재하지 않는 경우, 읽기, 쓰기를위한 새로운 파일을 만듭니다.

잘 요약되어 모델 이러한 유형의 아래의 그림 :

모드 아르 자형 R + w + w A +
읽기 + +   +   +
쓰기   + + + + +
만들기     + + + +
덮개     + +    
시작에 포인터 + + + +    
포인터의 끝에서         + +

파일 객체 속성

파일이 열린 후에는 파일 객체가, 당신은 파일에 대한 다양한 정보를 얻을 수 있습니다.

다음은 관련된 모든 속성과 파일 객체의 목록입니다 :

재산 기술
file.closed 파일을, 그렇지 않은 경우는 false 폐쇄 된 경우에 true를 돌려줍니다.
file.mode 열린 파일 액세스 패턴으로 돌아갑니다.
파일 이름 파일의 이름을 돌려줍니다.
file.softspace 인쇄 출력, 공백 문자가 와야하는 경우, false를 돌려줍니다. 그렇지 않으면 true를 반환합니다.

예를 다음 :

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
print "是否已关闭 : ", fo.closed
print "访问模式 : ", fo.mode
print "末尾是否强制加空格 : ", fo.softspace

상기 출력의 예 :

文件名:  foo.txt
是否已关闭 :  False
访问模式 :  w
末尾是否强制加空格 :  0

close () 메소드

정보를 새로 고치려면 파일 닫기 개체 () 메소드는 더 이상 기록 할 수있는 후 파일을 어떤 버퍼를 작성하고 종료되지 않았습니다.

파일 객체 참조가 다른 파일에 다시 할당 할 때, 파이썬은 전에 파일을 닫습니다. 가까운 () 메소드를 사용하여 파일을 닫습니다 것은 좋은 습관이다.

구문 :

fileObject.close()

예를 들면 :

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
 
# 关闭打开的文件
fo.close()

상기 출력의 예 :

文件名:  foo.txt

읽기 및 쓰기 파일 :

파일 객체는 일련의 메서드가보다 쉽게 ​​액세스 파일에 우리를 허용합니다. 읽기 및 쓰기 파일 읽기 () 및 쓰기 () 메서드를 사용하는 방법을 참조하십시오.

쓰기 () 메소드

쓰기 () 메소드는 문자열이 열려있는 파일 중 하나가 될 수 있습니다 씁니다. 그것은 점에 유의하는 것이 중요하다, 파이썬 문자열은 이진 데이터,보다는 텍스트가 될 수 있습니다.

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

구문 :

fileObject.write(string)

在这里,被传递的参数是要写入到已打开文件的内容。

例子:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "w")
fo.write( "www.runoob.com!\nVery good site!\n")
 
# 关闭打开的文件
fo.close()

上述方法会创建foo.txt文件,并将收到的内容写入该文件,并最终关闭文件。如果你打开这个文件,将看到以下内容:

$ cat foo.txt 
www.runoob.com!
Very good site!

read()方法

read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

语法:

fileObject.read([count])

在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。

例子:

这里我们用到以上创建的 foo.txt 文件。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
# 关闭打开的文件
fo.close()

以上实例输出结果:

读取的字符串是 :  www.runoob

文件位置:


文件定位

tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头多少字节之后

seek(offset [,from])方法改变当前文件的位置Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置

如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置

例子:

就用我们上面创建的文件foo.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
 
# 查找当前位置
position = fo.tell()
print "当前文件位置 : ", position
 
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)
str = fo.read(10)
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()

以上实例输出结果:

读取的字符串是 :  www.runoob
当前文件位置 :  10
重新读取字符串 :  www.runoob

重命名和删除文件

Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。

要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。

rename()方法:

rename()方法需要两个参数,当前的文件名和新文件名。

语法:

os.rename(current_file_name, new_file_name)

例子:

下例将重命名一个已经存在的文件test1.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )

remove()方法

你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。

语法:

os.remove(file_name)

例子:

下例将删除一个已经存在的文件test2.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")

Python里的目录:

所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。

mkdir()方法

可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。

语法:

os.mkdir("newdir")

例子:

下例将在当前目录下创建一个新目录test。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 创建目录test
os.mkdir("test")

chdir()方法(CHange DIRectory)

可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。

语法:

os.chdir("newdir")

例子:

下例将进入"/home/newdir"目录。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 将当前目录改为"/home/newdir"
os.chdir("/home/newdir")

getcwd()方法:(GET Current Working Directory)

getcwd()方法显示当前的工作目录

语法:

os.getcwd()

例子:

下例给出当前目录:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 给出当前的目录
print os.getcwd()

rmdir()方法(RoMove DIRectory)

rmdir()方法删除目录,目录名称以参数传递。

在删除这个目录之前,它的所有内容应该先被清除。

语法:

os.rmdir('dirname')

例子:

以下是删除" /tmp/test"目录的例子。目录的完全合规的名称必须被给出,否则会在当前目录下搜索该目录。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 删除”/tmp/test”目录
os.rmdir( "/tmp/test"  )

 

发布了19 篇原创文章 · 获赞 0 · 访问量 809

추천

출처blog.csdn.net/weixin_44151772/article/details/104035316