前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python--文件操作

Python--文件操作

作者头像
py3study
发布2020-01-19 11:56:00
3040
发布2020-01-19 11:56:00
举报
文章被收录于专栏:python3python3

Python 基础-文件操作

文件处理流程

1.打开文件,得到文件句柄并赋值给一个变量

2.通过句柄对文件进行操作

3.关闭文件

 r模式,默认模式,文件不存在则报错

w模式,文件不存在则创建,文件存在则覆盖

a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写日志文件的时候常用),追加模式是一种特殊的写模式

b(rb,wb,ab)模式:不用加encoding:utf-8

基本操作

打开文件

代码语言:javascript
复制
open(path, flag[, encoding][, errors])
path:要打开文件的路径
flag:打开文件的方式
r   以只读的方式打开文件,文件的描述符放在文件的开头   
rb  以二进制格式打开一个文件用于只读,文件的描述符放在文件的开头
r+  打开一个文件用于读写,文件的描述符放在文件的开头
w   打开一个文件只用于写入,如果该文件已经存在会覆盖,如果不存在则创建一个新文件
wb  打开一个文件只用于写入二进制,如果该文件已经存在会覆盖,如果不存在则创建一个新文件
w+  打开一个文件用于读写,如果该文件已经存在会覆盖,如果不存在则创建一个新文件
a   打开一个文件用于追加,如果文件存在,文件描述符将会放在文件末尾
a+  
encoding:编码格式
errors:错误处理

path = r"C:\Users\Desktop\file1.txt"

#ignore  忽略错误
f = open(path, "r",encoding="gbk")

打开文件的模式有:

  • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
  • w,只写模式【不可读;不存在则创建;存在则清空内容】
  • x, 只写模式【不可读;不存在则创建,存在则报错】
  • a, 追加模式【可读;   不存在则创建;存在则只追加内容】

"+" 表示可以同时读写某个文件

  • r+, 读写【可读,可写】
  • w+,写读【可读,可写】
  • x+ ,写读【可读,可写】
  • a+, 写读【可读,可写】

 "b"表示以字节的方式操作

  • rb  或 r+b
  • wb 或 w+b
  • xb 或 w+b
  • ab 或 a+b

 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

 读文件内容

代码语言:javascript
复制
# 1、读取文件全部内容
str1 = f.read()
print(str1)

# 2、读取指定字符数
str2 = f.read(10)
print("*"+str2+"*")
str3 = f.read(10)
print("*"+str3+"*")

# 3、读取整行,包括"\n"字符
str4 = f.readline()
print(str4)
str5 = f.readline()
print(str5)

# 4、读取指定字符数
str6 = f.readline(10)
print(str6)

# 5、读取所有行并返回列表
list7 = f.readlines()
print(list7)

# 6、若给定的数字大于0,返回实际size字节的行数
list8 = f.readlines(20)
print(list8)

# 7、修改描述符的位置
f.seek(10)
str9 = f.read()
print(str9)

关闭文件

f.close()

代码语言:javascript
复制
#   一个完整的过程
try:
    f1 = open(path,"r", encoding="gbk")
    print(f1.read())
finally:
    if f1:
        f1.close()
代码语言:javascript
复制
with open(path,"r",encoding="gbk") as f2:
    print(f2.read())

写文件

代码语言:javascript
复制
path = r"C:\Users\Desktop\file4.txt"
f = open(path,"w")

#   1、将信息写入缓冲区
f.write("lee is a good man")

#   2、刷新缓冲区
#   直接把内部缓冲区的数据立刻写入文件,而不是被动的等待自动刷新缓冲区写入
f.flush()
f.write("lee is a good man\n")
f.close()

with open(path,"a") as f:
    f.write("good man")
代码语言:javascript
复制
with open('a.txt','w')  as  f:
  pass

with open('a.txt','r')  as read_f,open('b.txt','w')  as  write_f:
  data=read_f.read()
  write_f.write(data)
代码语言:javascript
复制
path = r"C:\Users\yanji\Desktop\day7\test1"
with open(path,"wb") as f3:
    str = "lee is a good man"
    f3.write(str.encode("utf-8"))
with open(path,"rb") as f2:
    data = f2.read()
    print(data)
    print(type(data))
    newDate = data.decode("utf-8")
    print(newDate)
    print(type(newDate))
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python 基础-文件操作
    • 文件处理流程
      • 基本操作
        • 打开文件
        •  读文件内容
        • 关闭文件
        • 写文件
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档