网络编程
位置:首页>> 网络编程>> Python编程>> Python 文件操作方法总结

Python 文件操作方法总结

作者:wx5ad774e6965c3  发布时间:2023-11-29 11:36:28 

标签:Python,文件,操作

文件处理流程

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

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

  • 3.关闭文件

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

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

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

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

基本操作

打开文件

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方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

 读文件内容

# 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()

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

写文件

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")
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)
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))

来源:https://blog.51cto.com/u_13710166/5288411

0
投稿

猜你喜欢

  • Django带来了一个高级的聚合生成框架,它使得创建RSS和Atom feeds变得非常容易。什么是RSS? 什么是Atom?RSS和Ato
  • 一.请求后台的时候,服务端对每一个请求都会验证权限,而前端也需要对服务器返回的特殊状态码统一处理,所以可以针对业务封装请求。首先我们通过re
  • 10月15日,Adobe公司正式面向全球公布了第10个版本的Flash播放器,这一版本播放器的昵称是大家已经所熟知的“宇宙”。这是一款增加了
  • 关于段落<p></p>相信大家已经都在自己的工作中开始关注并应用了。因为那真的是非常简单的事,只要你愿意你随时都可以
  • 一、算法构造1.简单介绍一下knn算法KNN算法,也叫K最近邻算法。功能是分类。算法逻辑非常简单,说直白点就是:先找到跟你最近的k个邻居(假
  • 描述:让Len,Left,Right函数识别中文;对中文识别为两个字符,ASCII码为一个;可用此函数代替Len,Left,Right函数。
  • 交互设计就是研究人与物体之间如何互动的问题,比如按电梯时,按钮立即高亮,同时屏幕上显示电梯现在所在楼层数,这个过程就是交互设计,而电梯按钮用
  • 前言 一直用ASP+ACCESS来编写网页和公司的内部应用系统,内部应用系统也就是大家说的OA吧,这个我也不知道,公司又叫它ERP,反正不管
  • 希望对您有所帮助!推荐:[精品]ASP中常用的22个FSO文件操作函数 <%@ Language=VBScript
  • 从本篇开始讲述如何用css实现网页的布局,即如何用css控制网页内各个元素的显示位置。如果你是一个初学者,很可能觉得做一个网页的第一步就是布
  • 本文实例讲述了python获取当前计算机cpu数量的方法。分享给大家供大家参考。具体分析如下:这里实际上返回的是计算机的cpu核心数,比如c
  • 活在当下的程序员应该都听过“面向对象编程”一词,也经常有人问能不能用一句话解释下什么是“面向对象编程”,我们先来看看比较正式的说法。把一组数
  • 我设计第一篇网页的时候,就遇到了字体的设置问题。我发现如果用软件约定的字体大小,则显示效果会很难看的。我是用FrontPage2000作网页
  • 一. 访问WEB数据库的多种方案目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:1.公共网关接口CGI(Commo
  • 最近写程序需要从文件中读取数据,并把读取的数据转换成向量。查阅资料之后找到了读取csv文件和txt文件两种方式,下面结合自己的实验过程,做简
  • 如何做一个计数器并让人家申请使用?    第一步:创建一个计数器(最简单的数字计数器,不是图片式的):&nbs
  • 对于编译型的语言,比如C#中的一个.cs文件,Java中的一个.java或者编译后的.class文件可以认为是一个模块(但常常不表述为模块)
  • 注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布时,功能可能存
  • blankzheng的blog:http://www.planabc.net/经常有朋友问我,网站要在哪些浏览器上测试?要达到怎样的兼容?我
  • 函数原型:getopt.getopt(args, shortopts, longopts=[])参数解释:   
手机版 网络编程 asp之家 www.aspxhome.com