Python------文件

一.文件

1.定义:文件是用于数据存储的单位,文件通常用来长期存储设置,文件的数据是以字节为单位进行顺序存储的。

2.文件操作:分为文本文件操作和二进制文件操作

3.文件打开模式

'r'    #只读方式打开
'w'    #只写方式打开,删除原文件的内容(若文件不存在,则创建文件并以只写的模式打开)
'x'    #创建一个新文件,并以写的模式打开这个文件,若文件存在会产生"File
'a'    #以只写模式打开,若有原文件则追加在原文件后面
'b'    #以二进制模式打开
't'    #以文本文件模式打开(默认)
'+'    #为更新内容打开一个磁盘文件(可读可写)
#组合
'rt'   #文本文件只读
'wt'   #文本文件写入
'w+b'  #可以实现二进制数随机读写,打开文件时,文件内容会被清理
'r+b'  #以二进制和更新模式打开文件时,打开文件时不会清空文件内容
'r+'   #以文本模式读和更新模式打开文件,打开文件时不会清空文件内容

二.文本文件(.txt)

说明:

(1)默认文件中存储的内容是字符数据,以行为单位读取,采用系统默认的换行符进行分隔(2)对于文本文件的读写,需要用字符串(str)进行读取和写入数据

文件读取

open(file_name,mode='rt')#打开一个文件,返回此文件对象,打开失败的话会触发IOError错误
file.readline()#读取一行数据,如果到达了文件尾部,则返回一个空字符串
file.readlines(max_chars=-1)#返回每行字符串的列表,max_chars为最后一行
f.read(size=-1)#从一个文件流中读取所有行,所有换行符自动变为'\n',指定size后最多读取size个字符

文件写入

f=open(file_name,mode='w'['a'])
f.write(text)#写入一行内容,text为字符串类型
f.writelines([text1,text2...])#写入一系列的字符串,但是不会自动换行,需要我们自己加上换行符

f.flush()#把缓存内容写入磁盘

下面示例 f. flush()的使用

f=open("text1.txt")
f.write("1111")
s=input("暂停一下")
#此时若没有输入,打开文件时会发现文件并没有写入“1111”,是因为这时1111只是在缓冲区,
#必须输入内容使s执行后才会写入到文件内。若换成下面的代码,则可以看到文件写入内容

f=open("text1.txt")
f.write("1111")
f.flush()
s=input("暂停一下")

三.二进制文件(.bin)

说明:

默认文件中存储的都是以字节为单位的二进制数据,对二进制文件的读写需要用到字节串

文件读取:

f=open(text.txt,'rb')
b=f.read()#返回字节串
c=f.readlines()#返回字节串列表
d=f.read(n)#n代表读取的字节数
s=b.decode('utf-8')#返回字符串

文件写入:

f=open('data.bin','wb')
s='听到请回答'
f.write(s.encode('utf-8'))#写入字节串
r=f.write(s.encode('utf-8'))#返回的是写入字节串的字节数,若以文本方式打开,则会返回写入字符串的字符数

文件操作方法:

f.tell()#返回当前文件流的绝对位置,在读文件时,光标会根据读取内容向后移动,所以需要知道当前所在位置
f.seek(offset,whence=0)#改变数据流的位置,返回新的绝对位置 offset为偏移量,大于0向文件末尾移动,小于0向文件头的位置移动,whence是相对位置,0代表从文件头开始移动,1代表从当前位置开始,2代表从文件尾部开始
f.readable()#判断文件是否可读
f.writeable()#判断文件是否可写
f.truncate(pos=None)#剪掉文件自pos之后的数据

四.标准输入输出文件

sys.stdin(),sys.stdout(),sys.stderr()

在每一个程序启动后都会有以上三个文件存在

import sys
sys.stdout.write('hello')#将内容写到了文件流,即stdout.py文件,显示在终端
sys.stdout.close()#关闭,如果再进行print操作会出错
import sys
sys.stderr.write('I am an error')#同上,内容写到了stderr文件,也会显示在终端
import sys
s=sys.stdin.read(n)#读取n个键盘操作,包括换行符
print(s)

s1=sys.stdin.read()#读取一次性的键盘操作,包括换行符,当输入ctrl+D时告诉系统键盘操作结束
print(s1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值