文件读写基础

简单的读文件:

 # 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档案袋(文件系列操作 )的更多相关文章

  1. python对文件的操作

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...

  2. python里文件读写操作

    文件读写操作一种基本操作,但是里面也存在很多需要注意的问题,例如字符编码.内存缓冲.指针位置等等.如果忽视这些问题就会引起很多不必要的麻烦.简单来说,文件的读写分为几个过程: 打开文件,并定义操作文件 ...

  3. 【Python】文件读写操作

    Python的文件读写有点类似php的文件读写.php的文件读写已经在<[php]让记事本成为你调控变量的控制台>(点击打开链接)说过了,以下用一个小样例说明Python的文件读写. 在F ...

  4. python关于文件的操作

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  5. python进阶--文件读写操作

    Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 ...

  6. Python中文件的操作

    文件的操作介绍 文件打开的方法 主要有两种: no with 格式:open(file, mode='r', buffering=-1, encoding=None, errors=None, new ...

  7. day9 python学习 文件的操作 读 写 seek

    文件的操作 1   文件的打开操作: 文件句柄 = open('文件路径', '模式') f=open('wangyakun','a+',encoding='utf-8') #文件名, 如果是绝对路径 ...

  8. Python读写文件实际操作的五大步骤

    Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下面我们就详细介绍其应用程序. 一.打开文件 Pytho ...

  9. python基础--文件的操作

    #r w a 文件读取操作 默认打开为读操作 #f=open('coldplay.txt','r',encoding="utf-8")#open函数默认已系统编码方式打开windo ...

随机推荐

  1. [转] 如何设置双网卡同时连接内网外网_bpao_新浪博客

    已剪辑自: http://blog.sina.com.cn/s/blog_5d3e229c0100skwe.html 如何设置双网卡同时连接内网外网 . 通过无线网络连接外网,确保连接成功后开始第二步 ...

  2. c++ 开源库介绍和安装

    1 BLAS库 BLAS(Basic Linear Algebra Subprograms)是一组线性代数计算中通用的基本运算操作函数集合.BLAS Technical (BLAST) Forum负责 ...

  3. fine-tuning 两阶段模型

    目前大部分的nlp任务采用两阶段的模型,第一阶段进行预训练,一般是训练一个语言模型.最出名的是BERT,BERT的预训练阶段包括两个任务,一个是Masked Language Model,还有一个是N ...

  4. PCB铺铜

    问:为何要铺铜?答:一般铺铜有几个方面原因.1.EMC.对于大面积的地或电源铺铜,会起到屏蔽作用,有些特殊地,如PGND起到防护作用.2.PCB工艺要求.一般为了保证电镀效果,或者层压不变形,对于布线 ...

  5. 动态DP之全局平衡二叉树

    目录 前置知识 全局平衡二叉树 大致介绍 建图过程 修改过程 询问过程 时间复杂度的证明 板题 前置知识 在学习如何使用全局平衡二叉树之前,你首先要知道如何使用树链剖分解决动态DP问题.这里仅做一个简 ...

  6. LevelDB C API 整理分类

    // 结构体列表 typedef struct leveldb_t leveldb_t; // 数据库 typedef struct leveldb_cache_t leveldb_cache_t; ...

  7. 操作redis数据库 & 操作Excel & 开发接口

    操作redis数据库: string类型 1. 增 set,传俩个参数 key value(只要是字符串就行)2. 删 delete 传一个参数 key3. 修改 set 在目标key重新传参 key ...

  8. 使用mongo获取文章

    先在命令行中输入mongo,进入mongo,然后 show dbs # 从结果中发现有cmb_demo_23_hacker use cmb_demo_23_hacker db.all_in_one.f ...

  9. 【类与对象】--------java基础学习第六天

    类与对象 1. 对于面向对象的开发来讲也分为三个过程: OOA(面向对象分析) OOD(面向对象设计) OOP(面向对象编程) 2. 面向对象的基本特征 2.1. 封装:保护内部操作(属性,方法)不被 ...

  10. vuex学习(二)

    参考:https://segmentfault.com/a/1190000015782272 vue 2.0+ 你的vue-cli项目中安装 vuex : npm install vuex --sav ...