python小白之路:第五章 模块、包与库 第一节 文件

基础操作

file : 存储在磁盘中,针对磁盘中的文件的读写

操作步骤:打开文件open()、读写文件read/write()、关闭文件close()

open()打开文件

1.语法

open(文件的路径,打开的方式,[字符集])

文件的路径:URL 统一资源定位符

  a.相对路径:给别人指路,有参照物 :’./‘ 当前目录; ’../‘ 当前目录上一级目录
  
  b.绝对路径:收货地址,无参照物直接给地址信息

打开的方式:基础模式 w r x a 扩展模式 b +

  w (write写入):a.如果文件不存在,则创建; b.如果文件存在,则打开这个文件,并且清空文件内容; c.文件打开后,文件的指针在文件的最前面。
  
  r (read读取):a.如果文件不存在,则报错; b.如果文件存在,则打开这个文件; c.文件打开后,文件的指针在文件的最前面。
  
  x (xor异或):a.如果文件不存在,则创建; b.如果文件存在,则报错(防止覆盖); c.文件打开后,文件的指针在文件的最前面。
  
  a (append追加):a.如果文件不存在,则创建; b.如果文件存在,则打开这个文件,不会清空文件内容; c.文件打开后,文件的指针在文件的最后面。
  
  b (bytes二进制):wb rb ab xb
  
  + (plus增强模式可读可写):w+ r+ a+ x+ wb+ rb+ ab+ xb+

字符集:encoding=‘utf-8’

2.高级写法:

>     with open(文件路径,打开模式) as 变量 :
>             变量.操作

write()写入内容

格式:文件对象.write(内容) 只能str

with open('./test.txt','a+',encoding='utf-8') as fp:
    fp.write('hello world\n')
    
# hello world

格式:文件对象.writelines(容器类型) 但是容器类型里的元素也得是字符串

with open('./test.txt','a+',encoding='utf-8') as fp:
    fp.writelines(['hello world\n','nihao shijie\n'])
    
# hello world
# nihao shijie

read()读取内容

格式:文件对象.read() 从当前指针位置读取到最后

with open('./test.txt','a+',encoding='utf-8') as fp:
    fp.writelines(['hello world\n','nihao shijie\n'])
    fp.seek(0)
    res_1 = fp.read()
    print(res_1)
    
# hello world
# nihao shijie

格式:文件对象.read(n) 从当前指针位置读取指定的长度

格式:文件对象.readline() 一次只读一行

   with open('./test.txt','a+',encoding='utf-8') as fp:
        fp.writelines(['hello world\n','nihao shijie\n'])
        fp.seek(0)
        res_2 = fp.readline()
        print(res_2)
        
    # hello world

格式:文件对象.readlines() 返回每一行为一个元素的列表

with open('./test.txt','a+',encoding='utf-8') as fp:
    fp.writelines(['hello world\n','nihao shijie\n'])
    fp.seek(0)
    res_3 = fp.readlines()
    print(res_3)
    
# ['hello world\n', 'hello world\n', 'nihao shijie\n', '\n']

close()关闭文件

格式:文件对象.close()

截断内容

格式:文件对象.truncate(n) 把文件里的内容截断,留下n个字节

with open('./test.txt','a+',encoding='utf-8') as fp:
    fp.write('hello world\n')
    # #hello world
    fp.truncate(5)
    
# hello

设置指针位置:

fp.seek(0) : 指针位于开头,可以读取之后的内容

fp.seek(0,2) : 指针位于末尾,2指的是从末尾计算,0个偏移量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值