常用模式解释
open表示打开一个文件
f 变量, 操控XXX.txt文件的句柄
r:只读
w:只写
a:追加写入
b:byte,这种模式下,encoding不能用utf-8字符集
1. 文件的基本操作
1.读取
1.
f=open("xxx",mode="r",encodin="utf-8")
content=f.read() 一次性的全部读取出来 ,不推荐使用
print(content)
f.close()
2.
f=open("xxx",mode="r",encoding="utf-8")
content=f.read(n) 读取n个字符,如果继续读取,将会从当前位置继续读取n个字符
print(content)
f.close
3.
f=open("xxx",mode="r",encoding="utf-8")
content=readline() 一次读取一行,readline()结尾后面会带着一个/n所以用strip()去掉
print(content.strip())
f.close()
4.
f=open("xxxx",mode="r",encoding="utf-8")
content=f.readlines() 一次全部读取出来,返回的是列表,每行都是一个元素,不推荐使用
print(content)
f.close
5.循环读取
f=open("xxx",mode="r",encoding="utf-8")
for line in f:
print(line.strip())
f.clsose
注意:读取完毕一定要关闭句柄.close()
  2.写
1.
f=open("xx",mode="w",encoding="utf-8")
f.write("XXX\n") 如果文件不存在,则会常见文件,如果文件存在,则会把文件清空之后再写入
f.close() 在写的模式下,是不允许读取的
2.
f=open("xxx",mode="a",encoding ="utf-8")
f.write("xxx\n") 只要是在a,ab ,a+模式下都是在文件末尾追加的.不论光标在哪个位置
f.close()
3. 文本文档的复制
f1=open("xxx",mode="r",encoding="utf-8") 因为
f2=open("xxx",mode="w",encoding="utf-8")
for line in f1: 从f1读取数据
f2.write(line) 在f2写入数据
f1.close()
f2.close()
4. 文件复制的 使用于所有文件
f1=open("xxx",mode="rb")
f2=open("xxx",mode="wb")
for line in f1;
f2.write(line)
5. 读写r+
f=open("xxx",mode="r+",encodin="utf-8")
content=f.read() 坑: 不论你读取多少内容。再次写入的时候都是在末尾
f.write("xxx") r+正常的操作是先读取后写入
print(content) 如果是先写入后读取,会把开头部分覆盖掉
6. 写读w+
f=open("xx",mode="w+",encoding="utf-8")
f.write("xx") 先清空后写入,所以先读也是读取不到内容的
content=f.read() 光标在最后,所以读取不到内容
print(content)
7.追加写入a+
f=open("xxx",mode="a+",encoding="utf-8")
f.write("xx") 追加写入在末尾,因为光标在末尾,所以无论先读还是写完再读都没有内容
content=f1.read()
print(content)
8. 其他相关操作
seek(n),光标移动的位置,这里的单位是byte,所以utf-8中文部分要移动3的倍数.
seek(参数1,参数2)
参数1表示的是偏移量,移动了多长距离
0开头位置
1当前位置
2末尾
seek(0) 光标移动到开头
seek(0,2)光标移动到末尾
print(f.tell())获取光标当前位置
9.
truncate() 截断文件. 慎用 尽量不要瞎测试, w, w+
f = open(r"xxxx", mode="r+", encoding="utf-8")
f.seek(5) 光标移动到5
f.truncate() 默认从开头截取到光标位置
f.truncate(3) 从头截取到3
f.close()

  

10. 文件的修改以及另一种打开文件的方式
impor os
with open("xx",mode="r",encoding="utf-8") as f1,\
open("xx_new",mode="w",encoding="utf-8") as f2:
content=f1.read()
new_content=content.replace("xx","xx")
f2.write(new_content)
os.remove(f1) 删除源文件
os.rename("xx_new","xx") 重命名新文件 一次性读取伤内存
import os
with open("xx",mode="r",encoding="utf-8") as f1,/
open("xx_new",mode="w",encoding="utf-8") as f2:
for line in f1:
line_new=line.replace("xx","yy")
f2.write(line_new)
os.remove("xx")
os.rename("xx","zz")

day_08 文件操作的更多相关文章

  1. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  2. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  3. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  4. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  5. SQL Server附加数据库报错:无法打开物理文件,操作系统错误5

    问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...

  6. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  7. Linux文件操作的主要接口API及相关细节

    操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...

  8. C语言的fopen函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

  9. Python的文件操作

    文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...

随机推荐

  1. adb eclipse 截屏

    DDMS  左侧  选中设备 右上角有一个相机样式的按钮"screen capture"

  2. oracle --(四)表空间(tablespace)

    基本关系:数据库---表空间---数据段---分区---数据块 表空间(tablespace)表空间(tablespace)是包含物理数据文件的逻辑实体,存放数据库的所有可用数据,因此表空间的尺寸也是 ...

  3. C++面向对象类的实例题目七

    题目描述: 编写两个有意义的类,使一个类嵌套在另一个类中. 分析: 本题涉及两个类student和cdegree,前者为学生类,包含学生的学号(nubner),姓名(name)和成绩(degree), ...

  4. General框架如何实现多数据库支持

    关于用C#实现多数据库支持的方式,大家都会多少了解,本文从General框架的开发思路角度详细介绍General框架实现多数据库支持的方式,使更多的人了解General框架的底层实现并得到所需的相关知 ...

  5. ZROI2018提高day5t3

    传送门 分析我们可以根据性质将这个序列构造成一个环:0,a[1~n],0,a[n~1] 这中间的0是为了起间隔作用的. 我们又知道b[i]=a[i-1]^a[i+1] c[i]=b[i-1]^b[i+ ...

  6. delete请求,删除不成功?

    因为,在数据库底层,其实并没有删除该数据,只是将数据的标识设置为is_deleted.因此,最后即使删除了,查询的时候还是会显示在界面. 故,需要重写get请求.

  7. XML DTD语法详解

    XML DTD详解   XML DTD详解 前情提要与本文内容介绍 前面的两篇XML相关博文: 第一篇是介绍格式正规的XML: 格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节 第二 ...

  8. 启动应用程序的Activty多种方式

    启动应用程序的Activity总共有三种方式,如下: 1>通过包名得到将启动应用的入口Activity,然后给intent附上相应的属性即可. 示例代码 public static void s ...

  9. TCP/IP的三次握手和四次放手

    一开始个人对于三次握手和四次挥手这个东西还是有时候会忘记,可能理解的不是非常深刻,所以今天就自己动手来记录一下这个知识点,方便以后查看.总结完之后发现总结的还是可以的哈哈. 三次握手建立连接 第一次: ...

  10. MediaRecorder录像那些事

    最近在做一个项目需要运用到MediaRecorder的API,之前都没接触过这部分,开始着手弄的时候各种各样的问题,真是让人崩溃呀! 最后通过网上的资料和大神的指点,当然也有自己几天坚持不懈的努力,终 ...