006 文件

文件

  • 路径
    • 绝对路径:
      • C:\Users\Master\Desktop\test 磁盘路径
      • URL
    • 相对路径
      • 相对于自身正在编辑的文件
  • 文件名 + 扩展名
  • I/O 操作 Input Output

File

  • open() : open() 方法用于打开一个文件,并返回文件对象
    • filename 文件路径(相对或者绝对路径)。\

    • 打开方式:

      • r 默认方式 以只读方式打开文件。文件的指针将会放在文件的开头。
      • rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
      • r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
      • rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
      • w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
      • wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
      • w+ : 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
      • wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
      • a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
      • ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
      • a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
      • ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
    • encoding 文件编码
      ### 读

  • read() : 读取文件内容
    • 默认从文件指针的位置,往后一直读到结束。
    • 参数: 读取的字节数
  • readline: 读取文件指针的当前行
  • readlines: 读取所有行

  • write()

  • writelines

    • 字符序列
  • close() 关闭文件对象

文件指针

  • tell() 返回当前文件指针的位置
  • seek() : 设置文件指针的位置
    • offset : 偏移量
    • where : 相对于谁偏移
      • 0 代表从文件开头开始算起
      • 1 代表从当前位置开始算起,
      • 2 代表从文件末尾算起。
    • f.seek(0,0) 把指针移到文件开头
    • 在非b模式打开的时候,seek方法,的第二个参数,不允许赋值为,1或者2.

练习

  • 封装一个函数,传入一个文件名filename,如果文件名不存在,则创建一个filename的文件.如果文件名存在, 在同一个文件夹中复制一个名为filename-复件(扩展名保持一致)的文件.

  • 名为poetry.txt的文件,其内容如下,请删除第三行;

    昔人已乘黄鹤去,此地空余黄鹤楼。
    黄鹤一去不复返,白云千载空悠悠。
    晴川历历汉阳树,芳草萋萋鹦鹉洲。
    日暮乡关何处是?烟波江上使人愁。

  • 有名为username.txt的文件,其内容格式如下,写一个程序,判断该文件中是否存在"alex", 如果没有,则将字符串"alex"添加到该文件末尾,否则提示用户该用户已存在;

pizza
alex
egon

  • 有名为user_info.txt的文件,其内容格式如下,写一个程序,删除id为100003的行;

pizza,100001
alex, 100002
egon, 100003

  • 有名为user_info.txt的文件,其内容格式如下,写一个程序,将id为100002的用户名修改为alex li;
    pizza,100001
    alex, 100002
    egon, 100003

附加题: 昨天的彩票系统优化,已购买彩票存储在文本文档中。 下次运行,直接从文档中读取。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Captain_Data

打赏一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值