Python档案袋(文件系列操作 )
文件读写基础
简单的读文件:
# r 表示只能读
#打开文件,得到文件光标对象,文件不存在则报错
f=open("ww.txt","r",encoding="utf-8") #读取文件内容
res=f.read() #关闭文件
f.close() print(res)
读文件补充:
# r 表示只能读
#打开文件,得到文件光标对象,文件不存在则报错
f=open("ww.txt","r",encoding="utf-8") #读取文件内容,一次性全部读取
#rengs=f.read() #读一行
#res=f.readline() #将文件内容变成一个数组,每行一个元素,一次性全部读取
#res=f.readlines() #print(res) #每行循环打印,一次性全部读取
#for linex in f.readlines():
# print(linex) #每行循环打印,一次性读一行,效率高,推荐
for linex in f:
print(linex) #查看文件指针位置
#汉字长度为3,换行符长度为2,字母长度为1,与文件编码相关
print(f.tell())
#指针回退,0表示文件首部
f.seek(0) #打印文件编码
print(f.encoding) #打印文件名
print(f.name) #关闭文件
f.close()
简单的写文件:
# w 表示只能写
#打开文件,得到文件光标对象,如果文件不存在则新建,如果存在则覆盖
f=open("ww.txt","w",encoding="utf-8") #写文件,返回写入的字数,中文也是1,输出结果为:24
res=f.write("dongxiao\ndongdadong\n东小东东") #f.flush() #强制刷新,写文件时一般有缓冲区,缓冲区满才会写入
#print(f.truncate(2)) #文件截取并更新原文件,从头开始截取,长度与文件编码相关 #关闭文件
f.close()
print(res) #输出:24
简单的追加
在文件内容尾部添加数据
# a 表示追加,只能写
#打开文件,得到文件光标对象,如果文件不存在则新建
f=open("ww2.txt","a",encoding="utf-8") #写文件,返回写入的字数,中文也是1,输出结果为:7
res=f.write("\n追加的东小东") #关闭文件
f.close() print(res) #输出:7
二进制数据
设计图片或者视频数据时可以使用
二进制文件读:
# rb 表示二进制只读 #打开文件,不存在时报错
f=open("ww.txt","rb") res=f.read()
print(res) #关闭文件
f.close()
二进制文件写:
# wb 表示二进制只写 #打开文件,不存在时创建
f=open("ww.txt","wb") #必须经过编码成二进制才能进行写
res=f.write("东小东dong".encode("utf-8"))
print(res) #输出:13 #关闭文件
f.close()
文件内容更改:
实现一个文件的内容复制到另一个文件,并在文件复制的路上,对文件数据的部分修改
#打开两个文件,分别为写和读
fr=open("ww.txt","r",encoding="utf-8")
ft=open("ww1.txt","w",encoding="utf-8") #逐行取内容
for lienx in fr:
print(lienx) #寻找dong是否在字符串中
if "dong" in lienx:
#替换
lienx=lienx.replace("dong","dongxiaodong") ft.write(lienx) #关闭文件
fr.close()
ft.close()
其他方法补充
读写方式操作文件:
# r+ 表示读写 #打开文件,不存在是报错
f=open("ww.txt","r+",encoding="utf-8") print(f.tell())
#写
res=f.write("dongxiao\ndongdadong\n东小东东")
print(res) f.seek(0) #移动文件指针 res=f.read()
print(res) #关闭文件
f.close()
写读方式操作文件:
# w+ 表示写读 #打开文件,不存在时创建
f=open("ww8.txt","w+",encoding="utf-8") #以覆盖方式进行写文件
res=f.write("dongxiao\ndongdadong\n东小东东")
print(res) #此时光标在结尾,必须移动光标
f.seek(0) res=f.readline()
print(res) #关闭文件
f.close()
追加写读方式操作文件:
# a+ 表示追加写读 #打开文件,不存在时创建
f=open("ww10.txt","a+",encoding="utf-8") #以追加方式进行写文件
res=f.write("dongxiao\ndongdadong\n东小东东")
print(res) #此时光标在结尾,必须移动光标
f.seek(0) res=f.read()
print(res) #关闭文件
f.close()
with open……as… 文件操作可以避免忘记手动关闭文件,利用缩进特性实现,下面是如上相同功能实现。
#打开两个文件,分别为写和读
with open("ww.txt","r",encoding="utf-8") as fr,open("ww1.txt","w",encoding="utf-8") as ft:
# 逐行取内容
for lienx in fr:
print(lienx) # 寻找dong是否在字符串中
if "dong" in lienx:
# 替换
lienx = lienx.replace("dong", "dongxiaodong11") ft.write(lienx)
获取文件目录:
import os print(os.path.abspath(__file__))#得到程序的绝对路径
print(os.path.dirname(os.path.abspath(__file__)))#得到程序的绝对路径目录名 print(__file__) #返回程序的相对路径
Python档案袋(文件系列操作 )的更多相关文章
- python对文件的操作
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...
- python里文件读写操作
文件读写操作一种基本操作,但是里面也存在很多需要注意的问题,例如字符编码.内存缓冲.指针位置等等.如果忽视这些问题就会引起很多不必要的麻烦.简单来说,文件的读写分为几个过程: 打开文件,并定义操作文件 ...
- 【Python】文件读写操作
Python的文件读写有点类似php的文件读写.php的文件读写已经在<[php]让记事本成为你调控变量的控制台>(点击打开链接)说过了,以下用一个小样例说明Python的文件读写. 在F ...
- python关于文件的操作
总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...
- python进阶--文件读写操作
Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 ...
- Python中文件的操作
文件的操作介绍 文件打开的方法 主要有两种: no with 格式:open(file, mode='r', buffering=-1, encoding=None, errors=None, new ...
- day9 python学习 文件的操作 读 写 seek
文件的操作 1 文件的打开操作: 文件句柄 = open('文件路径', '模式') f=open('wangyakun','a+',encoding='utf-8') #文件名, 如果是绝对路径 ...
- Python读写文件实际操作的五大步骤
Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下面我们就详细介绍其应用程序. 一.打开文件 Pytho ...
- python基础--文件的操作
#r w a 文件读取操作 默认打开为读操作 #f=open('coldplay.txt','r',encoding="utf-8")#open函数默认已系统编码方式打开windo ...
随机推荐
- 当TFS/VSTS遇上Power BI
引言 众所周知,要对TFS进行深入的图表分析,往往需要依赖于SQL Server Analysis Service和SQL Server Reporting Service.虽然随着TFS对敏捷项目的 ...
- Future模式衍生出来的更高级的应用
再上一个场景:我们自己写一个简单的数据库连接池,能够复用数据库连接,并且能在高并发情况下正常工作. 实现代码1: package test; import java.util.concurrent.C ...
- 八、OpenStack—Cinder组件安装
一.安装和配置控制器节点 1.先决条件 1)创建数据库 # mysql -u root -p 2)创建cinder数据库 MariaDB [(none)]> CREATE DATABASE ci ...
- [HEOI/TJOI2016]序列
Description: 给你一个序列,每个数可能变化为另一个数,每次最多有一个数变化 求最长的子序列,无论如何变化,这个子序列都不下降 Hint: \(n \le 10^5\) Solution: ...
- Flume+Kafka+Storm+Hbase+HDSF+Poi整合
Flume+Kafka+Storm+Hbase+HDSF+Poi整合 需求: 针对一个网站,我们需要根据用户的行为记录日志信息,分析对我们有用的数据. 举例:这个网站www.hongten.com(当 ...
- vue-cli+mock.js+axios模拟前后台数据交互
最近工作不是很忙,自己做了一个vue的移动端的小项目,涉及到后台数据的时候,网上查阅了一些资料,因为是自己写的项目没有后台只能自己模拟数据,刚开始就自己写了一些静态数据后来觉得尽量模拟真实的比较好些, ...
- 关于Python2 与 Python3 的区别
Python是一门动态解释性的强类型定义语言. 1.Python2 : ①.臃肿,源代码的重复量很多. ②.语法不清晰,掺杂着C,php,Java的一些陋习. Python3 : 几乎是重构后的源 ...
- MVC5 Razor视图中不规范书写导致的编译问题
今天碰到一个非常让人难以理解的问题,如图所示,但是我在代码中并没有找到缺失"}"的地方: 根据源文件提示有去 AppData\Local\Temp\Temporary ASP.NE ...
- BUAA-OO-第一单元总结
BUAA-OO第一单元博客总结 第一次作业总结 (1)类关系图 第一次作业类图关系简单,仅有一个Poly封装类以及一个Main主类调用Poly,Poly封装类内部完成了包括对象构造,求导,生成字符串的 ...
- Oracle 闪回 找回数据
使用闪回技术,实现基于磁盘上闪回恢复区的自动备份与还原. 一.恢复表对象 1.创建学生表 create table STUDENT ( idno INTEGER, name VARCHAR2(30), ...