博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7.5 文件操作
阅读量:5300 次
发布时间:2019-06-14

本文共 1839 字,大约阅读时间需要 6 分钟。

文件操作

 

什么文件?

  操作系统提供给用户操作复杂硬件(硬盘)的简易的接口

为什么操作文件

  人或者应用程序需要永久的保存数据

文件的打开过程

  • step1 点击需要打开的文件
  • step2 操作系统接收到命令,将文件路径传送给CPU
  • step3 CPU根据路径去硬盘中寻找文件,然后调取到内存中
  • step4 操作系统将调取的文件显示出来,可进行读写保存等操作

文件打开的模式

  r 只读模式

  w 只写模式

  a 追加写模式

操作文件单位的方式

  t 文本文件  t在使用的时候需要指定encoding参数 如果不知道默认是操作系统的默认编码

  b 二进制 (因为已经制定了用二进制模式)所以一定不能指定encoding参数

mode参数

  可以不写  不写的话默认是rt 只读的文本文件  这个t不写默认就是t

  r模式

with open(r'D:\Python项目\day07\a.txt',mode='r',encoding='utf-8') as f:    print(f.readable())  # 是否可读    print(f.writable())  # 是否可写    print(f.read())  # 一次性将文件内容全部读出
# r模式在打开文件的时候 如果文件不存在 直接报错# 文件路径可以写相对路径 但是需要注意该文件必须与执行文件在同一层文件下with open(r'a.txt',mode='r',encoding='utf-8') as f:with open(r'a.txt','r',encoding='utf-8') as f1:  mode关键字可以不写    print(f.readable())  # 是否可读    print(f.writable())  # 是否可写    print(">>>1:")    print(f.read())  # 一次性将文件内容全部读出    print('>>>2:')    print(f.read())  # 读完一次之后 文件的光标已经在文件末尾了,再读就没有内容了可读    print(f.readlines())  # 返回的是一个列表  列表中的一个个元素对应的就是文件的一行行内容    for line in f:  # f可以被for循环 每for循环依次 读一行内容        print(i)  # 这个方法 就可以解决大文件一次性读取占用内存过高的问题    print(f.readline())  # 只读取文件一行内容    print(f.readline())    print(f.readline())    print(f.readline())

  w模式(慎用)

# 1.文件不存在的情况下 自动创建该文件# 2.当文件存在的情况下 会先清空文件内容再写入with open(r'xxx.txt',mode='w',encoding='utf-8') as f:    print(f.readable())  # 是否可读    print(f.writable())  # 是否可写    f.write('不不不,你没有翻~\n')    f.write('不不不,你没有翻~\n')    f.write('不不不,你没有翻~\n')    f.write('不不不,你没有翻~\r')    f.write('不不不,你没有翻~')    l = ['不sdffs,sdfs有翻~\n','不sdfsdf不,你sdfsf翻~\n','不sfad不,你没sa翻~\n']    f.writelines(l)    # 上下等价    for i in l:        f.write(i)

  a模式

# 1.当文件不存在的情况下 自动创建该文件# 2.当文件存在的情况下,不清空文件内容, 文件的光标会移动文件的最后with open(r'yyy.txt',mode='a',encoding='utf-8') as f:    print(f.readable())  # 是否可读    print(f.writable())  # 是否可写    f.write('我是小尾巴\n')

 

转载于:https://www.cnblogs.com/PowerTips/p/11146087.html

你可能感兴趣的文章
常见HTTP状态码(200、301、302、500等)
查看>>
Atiti.大企业病与小企业病 大公司病与小公司病
查看>>
处理器管理与进程调度
查看>>
解决随机数生成的坐标在对角线上的问题
查看>>
服务器ganglia安装
查看>>
回炉重造-基本规则之语言的理解
查看>>
查找字符串中出现最多的字符
查看>>
C++执行内存memcpy的效率测试
查看>>
Event Store框架探究
查看>>
部分STL_hanhan~
查看>>
16进制的简单运算(不同进制的计算,输入,输出)
查看>>
vue.js安装
查看>>
CUDA并行计算 | 线程模型与内存模型
查看>>
android JNI库实现reboot,recovery
查看>>
HashMap的存储结构及原理
查看>>
在线即时展现 Html、JS、CSS 编辑工具 - JSFiddle
查看>>
veridata实验例(3)验证veridata发现insert操作不会导致同步
查看>>
ExecuteScalar
查看>>
元 变化
查看>>
转_socket函数
查看>>