笨方法“学习python笔记之文件操作
python 与其他语言相比,操作文件非常方便,提供了良好的API.
Open函数
python是以文件对象的方式来操作文件,操作文件之前首先要打开文件产生一个文件对象,以便进行后续操作。
open()函数:
open(file, mode='r')
一般操作文件主要以一个或者两个参数为主,一个是文件名,一个是打开对象权限。
open()函数的全部语法为:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
file:为必须的,文件名(可以带绝对路径或者相对路径)
mode:可选的,文件打开模式或者权限
buffering:设置读写缓冲
encoding:一般使用utf8,文件编码格式
errors:报错级别
newline:区分换行符
closefs:传入的file参数类型
opener:文件打开者
其中mode参数较多有如下:
模式 | 描述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
File对象
open创建完文件对象之后,提供如下操作:
序号 | 方法及描述 |
---|---|
1 |
file.close() 关闭文件。关闭后文件不能再进行读写操作。 |
2 |
file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
3 |
file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。 |
4 |
file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。 |
5 |
file.next() Python 3 中的 File 对象不支持 next() 方法。 返回文件下一行。 |
6 |
file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。 |
7 |
file.readline([size]) 读取整行,包括 "\n" 字符。 |
8 |
file.readlines([sizeint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。 |
9 |
file.seek(offset[, whence]) 设置文件当前位置 |
10 |
file.tell() 返回文件当前位置。 |
11 |
file.truncate([size]) 从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。 |
12 |
file.write(str) 将字符串写入文件,返回的是写入的字符长度。 |
13 |
file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
例子
以书本中的第16个用例为主,读写一个文件,将文件内容清空,并输入新的文件内容:
from sys import argvscript, filename = argvprint(f"We're going to erease {filename}")
print("If you don't want that, hit CTRL-C")
print("If you do want that, hit RETURN.")input("?")print("Opening the file...")
#打开文件,如果没有则创建一个
target = open(filename, 'w')print("Truncating the file. Goodbye!")#清除文件
target.truncate()#分别输入三行内容
line1 = input("Line 1: ")
line2 = input("Line 2: ")
line3 = input("Line 3: ")print("I'm going to write these to the file.")#将三行内容写入到文件中
target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")print("And finally, we close it.")
#最后关闭文件
target.close()
运行结果:
参考资料
https://www.runoob.com/python3/python3-file-methods.html
笨方法“学习python笔记之文件操作相关推荐
- 笨方法“学习python笔记之print()函数end
在<"笨方法"学习python>中的第7个习题中的用例代码中有print()函数的end用例 代码如下: end1 = "C" end2 = &qu ...
- 笨方法“学习python笔记之urlopen
最近在学习"笨方法"学python中,在习题41中发现了urlopen()函数,特意查了下官方资料,查资料最好查官方资料,最好不要做"百度君".urlopen( ...
- 笨方法“学习python笔记之输入
Python程序输入和其他语言一样,主要有三种方式 1:常用的 使用input()函数,作为程序的输入 例子就采用<"笨方法"学python>中的第·12个习题作为例子 ...
- “笨方法”学习Python笔记(1)-Windows下的准备
Python入门书籍 来自于开源中国微信公众号推荐的一篇文章 全民Python时代,豆瓣高级工程师告诉你 Python 怎么学 问:请问你目前最好的入门书是那本?有没有和PHP或者其他语言对比讲Pyt ...
- 笨方法“学习python笔记之元组(tuple)
Tuple(元组)是python的基本序列三种类型之一(另外两种是List, Range),是"笨方法"学python3中没有讲到的数据类型,因此专门查了下官方资料,中可以查找到对 ...
- 笨方法“学习python笔记之字典
列表是线性存储,且可以随机访问,且是有序的,其访问可以通过索引来访问.而字典是另外一种存储数据,可以通过建立键和值的映射关系,就和查字典差不多,通过键就可以查找到相对应的值 字典创建 字典创建过程中每 ...
- 笨方法“学习python笔记之字符串
字符串(str)是python的一种重要的数据格式,官方文档中对字符串的解释为一种文本序列格式,其内容不可修改(有点类似元组),官方解释如下: 字符串表示 可以看到官方文档里面,给出了字符串的三种表示 ...
- 笨方法“学习python笔记之print换行
python中 print()函数打印换行有几种 方法: 1:第一种方法是使用多个print打印,多个print默认换行 例子 print("Hello world") print ...
- “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境
Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...
最新文章
- [置顶] 贝叶斯分类(一)
- java commons-chain_Apache commons chain 初探
- IDEA的查询引用、调用关系图的功能
- uni-app自定义tabBar;uni-app小程序自定义tabBar;uni-app小程序修改中间tabBar导航栏大小;uni-app中间导航栏凸起;uni-app修改底部导航栏
- PAT1103 Integer Factorization (30)(DFS:回溯)
- python头文件库_跟老齐学Python之不要红头文件(1)
- 使用回收站主键名、索引名问题
- RecyclerView的各种版本兼容问题处理集锦
- 深度剖析Java数据结构之迭代器(Iterator)
- CentOS安装系统时硬盘分区建议
- Angular2 的 View Encapsulation(样式封装)
- 代码 设为主页 加入收藏 代码
- 传智播客杨中科老师的全13季 C#、Asp.net视频教程
- mumu 模拟器连不上adb
- 微信小程序毕业设计 就餐预约点餐小程序毕业设计
- Win11 如何跳过微软注册界面
- DNS域名解析详细说明
- 呜呜。平安夜没有苹果
- android 定时打开app,如何 定时启动你的Android App
- 重复高斯勒让德法则(gauss-legendre)求积分(python,数值积分)
热门文章
- JEECG前后端分离UI框架实战抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)
- Memcached学习一:Memcached安装使用
- SpringCloud微服务:Ribbon和Feign组件,实现服务调用的负载均衡
- AutoKeras使用
- 2.3Python基础语法(三)之输入输出
- RDS For SQL Server链接服务器
- php序列化和反序列化
- 5.Servlet 对象(request-response)
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置
- iOS开发之网络编程--6、NSURLSessionConfiguration笔记