笔记||Python3之文件的读写
【文件的读模式】
文件的对象:文件的读写通过文件操作对象进行。
Python2 ----- File
Python3 ----- TextIOWrapper
文件的打开:
内置函数open(file,mode) --- 打开文件,获取文件操作对象。
一定要有file文件路径(路径、文件名、文件格式) 否则报错。
fo = open(fileDir) ----- 只读
路径的写法:①绝对路径 ----- 从根目录开始的
②相对路径 ------ ./当前位置 ../ 上一级
fileDir = 'C:/test.txt'
fileDir = 'C:\\test.txt'
fileDir = r'C:\test.txt' --- 取消转义
读模式:如果该文件不存在会报错!
fo = open(dileDir, 'r') <==> fo = open(fileDir)
fo.tell() -------------- 从0开始 显示指针位置
fo.read(2) ------------ 读2个字符
fo.read() -------------- 读全部内容
文件中的换行是2个长度 \n 'a\nb' ----- 字符串中是一个
fo.close() --- 关闭文件
移动文件指针位置:seek()
0模式: --- 绝对位置模式 fo.seek(1,0) 从0开始 一般像txt、log r
前提:python3 一定在'rb'模式下 ---- 二进制模式 --- 非文本文件(图片)
1模式:当前位置开始移动 fo.seek(移动的位数,模式1) ----- 如:fo.seek(-1, 1) rb
移动的位数 正数:向后移 负数:向前移
2模式: ---从尾部位置开始 fo.seek(-1,2) rb
移动的位数 正数:向后移 负数:向前移
代码例子:
fileDir = 'C:/test.txt'
fo = open(fileDir, 'rb') # 打开文件
print('读前',fo.tell()) # 显示指针当前位置
print(fo.read(2)) # 读2个字符
print('读后',fo.tell()) # 再次显示指针当前位置
fo.seek(2,2) # 移动向后移动两位
print(‘移动后’,fo.tell()) # 再一次显示指针当前位置
readline: 读取一行
1 - 该方法返回是print(type(fo.readline())) --- <class 'str'>
2 - 文件指针会做相应的偏移
readlines:读取所有行
1 - 该方法返回的是print(type(fo.readlines())) --- <class 'list'>
区别:① fo.read() -------- 返回str
② fo.readlines() -------- 返回是list
2 - fo.read().splitlines() --- 返回list 而且去掉换行符
=================================================================================
【文件写模式】:
写模式特点:可以新建文件,若文件不存在则会创建一个新文件;
如果写模式打开一个文件,所有的内容会被清空。
1 - fo = open(fileDir, 'w')
2 - 如果该路径下的文件存在 --- 会清空
3 - 如果该路径下的文件不存在 ---- 会新建
4 - 在pycharm里面,你执行了fo.write('123') ----- 可以直接写进去
5 - fo.write('123') --- 返回值 ---- 写的字符长度
6 - fo.flush() 强行写入文件
7 - fo.close() 关闭文件会强行写入文件
追加模式 a:只是为了在文件末尾追加内容而打开文件
with open方式:
1 - with open(fileDir) as rFile: ------等价于--------- rF = open(fileDir)
2 - 可以省略fo.close()
3 - 操作多个文件
seek: 1 - (1,模式) --- 0模式 ---- 绝对位置,从0开始
2 - (1,模式) --- 1模式 ---- 当前位置,开始
3 - (1,模式) --- 2模式 ---- 尾部位置,开始
例子:
fileDir2 = open('C:/text.txt', 'w')
fileDir2.write('123456') # 一定是str
# 如果写入时,需要换行时,应该怎么做?
fileDir2.write('01-test'+'\n')
fileDir2.write('02-test')
fileDir2.flush() # 写入
fileDir2.close() # 关闭 同样也会保存
笔记||Python3之文件的读写的更多相关文章
- Python3:文件读写
Python3:文件读写 open f = open('filename','r') # 读模式 f = open('filename','w') # 写模式 f = open('filename', ...
- python3的文件读写模式
任何一种语言,文件的读写都是非常常见的.python的文件读写非常简单,仅仅一个函数open(file也可以,但是我不常用). 先看看官网的解释: open(file, mode='r', buffe ...
- python3文件的读写操作
open函数:对文件进行读写操作前,先打开文件,获取文件的句柄: open(file, mode, encoding, buffering) 参数说明 file_name:一个包含了你要访问的文件路径 ...
- 吴裕雄--天生自然python学习笔记:Python3 File(文件) 方法
open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...
- python3:文件读写+with open as语句(转)
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
- Linux实战教学笔记08:Linux 文件的属性(下半部分)
第八节 Linux 文件的属性(下半部分) 标签(空格分隔): Linux教学笔记 ---更多相关资料请点我查看 第1章 链接的概念 在linux系统中,链接可分为两种:一种为硬链接(Hard Lin ...
- Windows phone 8 学习笔记(2) 数据文件操作
原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...
- C# 之三类文件的读写( .XML,.INI 和 .TXT 文件)
笔记之用,关于三类.xml, .ini, .txt 文件的 C# 读写,请多多指教! 1,第一类:.xml 文件的读写 先贴上xml文件,下面对这个文件进行操作: <?xml version=& ...
- 内核模块中filp->open对文件的读写【转】
转自:http://guiltcool.blog.chinaunix.net/uid-9950859-id-98917.html 平时网络部分的东西碰的多些,这块一开始还真不知道怎么写,因为肯定和在用 ...
随机推荐
- 装上linux后的准备工作
A.修改对应网卡的IP地址的配置文件 1 2 3 4 5 6 7 8 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPV6INIT=no #关闭 ...
- Ubuntu18.04.3 LTS初体验
安装系统 想来虚拟机安装太慢,正好有一台旧电脑,干脆整个乌班图系统. 启动盘工具:UltraISO,老牌工具了. 上官网下载ISO镜像文件: https://cn.ubuntu.com/downloa ...
- 019.Kubernetes二进制部署插件dashboard
一 修改配置文件 1.1 下载解压 [root@k8smaster01 ~]# cd /opt/k8s/work/kubernetes/ [root@k8smaster01 kubernetes]# ...
- 理解Spark运行模式(一)(Yarn Client)
Spark运行模式有Local,STANDALONE,YARN,MESOS,KUBERNETES这5种,其中最为常见的是YARN运行模式,它又可分为Client模式和Cluster模式.这里以Spar ...
- Anaconda 笔记
Anaconda笔记 conda 功能 管理版本的切换 安装其他的包 conda 创建python27环境 conda create --name python27 python=2.7 conda ...
- 领扣(LeetCode)两数之和II - 输入有序数组 个人题解
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明: 返回的下标值 ...
- Json模块和Pickle模块的使用
在对数据进行序列化和反序列化是常见的数据操作,Python提供了两个模块方便开发者实现数据的序列化操作,即 json 模块和 pickle 模块.这两个模块主要区别如下: json 是一个文本序列化格 ...
- 逆向分析objc,所有类的信息都能在动态调试中获取。
因为objc是动态绑定的,程序运行时必须知道如何绑定,依靠的就是类描述.只要知道类描述是如何组织的就可以获取一切有用的信息.不知道是幸运还是不幸,这些信息全部都在运行的程序中.即使没有IDA这样的工具 ...
- SpringBoot Application深入学习
本节主要介绍SpringBoot Application类相关源码的深入学习. 主要包括: SpringBoot应用自定义启动配置 SpringBoot应用生命周期,以及在生命周期各个阶段自定义配置. ...
- 一文带你深入了解 redis 复制技术及主从架构
主从架构可以说是互联网必备的架构了,第一是为了保证服务的高可用,第二是为了实现读写分离,你可能熟悉我们常用的 MySQL 数据库的主从架构,对于我们 redis 来说也不意外,redis 数据库也有各 ...