Python文件

文件的操作流程

  1. 打开
  2. 对文件进行操作
  3. 关闭
  • 打开文件open()
    open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)
  • 文件操作read()输出字符串类型、write()等
  • 关闭close()
F_obj = open(r'F:\python文档\yddaily.txt',mode='a')  #mode=a追加模式 w写 r读
F_obj.writelines(daily+'\n')  #写入内容
F_obj.close() #关闭

with open…as 操作

此操作可以避免因为忘记关闭文件而占用内存。操作完文件后,自动关闭文件。

with open(file='fileTest.txt',mode='r',encoding='gbk') as f:
    content = f.read()
    print(content)
print(f)#<_io.TextIOWrapper name='fileTest.txt' mode='r' encoding='gbk'>
f.read()#报错,因为已经关闭了

打开模式mode

'r'      读 (default)
'w'      写
'x'      创建新文件,有则报错 FileExistsError
'a'      末尾追加内容,若文件不存在,则创建文件,文件存在,追加内容
'b'      二进制
't'       文本模式 (default)
'+'       open a disk file for updating (reading and writing)
'U'       universal newline mode (deprecated)

读操作

  • f.read()
    可以引入一个参数,指定读取的size,默认是-1读取所有,如果文件比较大,建议传入size。
 @abstractmethod
    def read(self, n: int = -1) -> AnyStr:
        pass

with open(file='fileTest.txt',mode='r',encoding='gbk') as f:
    content = f.read(1)   读取1个字符  gbk模式  1个英文与一个汉字 长度都为1
    content1 = f.read(2)  接着从读取的位置往下读取
    print(content,content1)


案例  读取文本长度80,直到读取完毕,退出
with open(file='fileTest.txt',mode='r',encoding='gbk') as f:
    content = ''
    c = 80
    while True:
        txt = f.read(c)
        if txt:
            content += txt
        else:
            break
print(content)

  • f.readline()读取一行
with open(file='fileTest.txt',mode='r',encoding='gbk') as f:
    content = f.readline()
print(content)
  • f.readlines()读取多行,装入一个列表
    每行以换行结尾
    在这里插入图片描述

写操作f.write(),writelines()

模式w,r+,a,x都可以写

  • f.wirte()
@abstractmethod
    def write(self, s: AnyStr) -> int:
        pass
写入hello world到aaa.txt文件。
用的x模式,使用该模式时当前目录aaa.txt文件不能存在,否则报错
用a模式可以创建和追加
with open(file='aaa.txt',mode='x') as f:
    f.write('hello world')
  • f.writelines()
    写入多行,传入列表
@abstractmethod
    def writelines(self, lines: List[AnyStr]) -> None:
        pass

with open(file='aaa.txt',mode='a') as f:
    f.writelines(['hello\n','hello1'])

二进制文件

图片,音频,视频等。b

1. 读取rb
with open(file='Kalimba.mp3',mode='rb') as f:
    print(f.read(100))  这里的100表示100个字节B,文本类型表示长度

2. 读取音频文件,并写入新文件
with open(file='Kalimba.mp3',mode='rb') as f:
    c = 1024*100  定义读取的文件size100KB 
    with open('abc.mp3','wb') as f1:
        while True:
            content = f.read(c)  循环每次读取100KB
            if content:
                f1.write(content)  写入到abc.mp3
            else:
                break

读取文件位置

f.tell() 方法用来检查当前读取的位置
@abstractmethod
    def tell(self) -> int:
        pass

f.seek()
@abstractmethod
    def seek(self, offset: int, whence: int = 0) -> int:
        pass
offset
参数whence:0 从头开始 默认
		   1 从当前位置
    	   2  从最后位置计算

文件其他操作OS

os.listdir()输出文件
os.chdir(‘d:’) 改变目录
print(os.getcwd()) 输出当前路径
os.mkdir(‘abc’) 创建目录
os.rmdir(‘abc’) 删除目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值