[ Python ] 文件的读写操作
1. 文件读写操作
读写文件是最常见的 IO 操作, Python 内置了读写文件的函数。
在磁盘上读写文件的功能是由操作系统提供的,所以读写文件是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据,或者把数据写入这个文件对象。
文件打开方式
open(file, mode='r', buffering=None, encoding=None) open 函数在打开一个文件
file: 打开文件的目录路径
mode: 打开文件的方式,读写;
buffering: 缓冲 buffering 大小
encoding: 以什么格式打开,常见:utf-8, GBK

不同模式打开文件的完全列表:
2. File 对象的属性
一个文件被打开后, 你有一个file对象,你可以得到有关该文件的各种信息。
以下是和file对象相关的所有属性的列表:

f = open('test.txt', 'r', encoding='utf-8')
print('文件名:', f.name)
print('是否已关闭:', f.closed)
print('访问模式:', f.mode)
# 执行结果:
# 文件名: test.txt
# 是否已关闭: False
# 访问模式:r
3. 文件定位
(1)tell
获取被打开文件当前光标位置
f = open('test.txt', 'r', encoding='utf-8')
str1 = f.read(8)
print(str1)
print('光标当前位置:', f.tell())
f.close()
# 执行结果:
# abcdefgh
# 光标当前位置: 8
(2)seek(offset [, from])
改变当前光标的位置,offset 变量表示要移动的字节数
from 变量指定开始移动字节的参考位置
from=0 将文件的开头作为移动字节的参考
from=1 使用当前的位置作为参考位置
from=2 该文件的末尾将作为参考位置
f = open('test.txt', 'r', encoding='utf-8')
# read 方法读取的是字符数,而不是字节数
str1 = f.read(8)
print('【读取前8个字符:】',str1)
print('【当前光标的位置(单位字节):】', f.tell())
# 使用 seek 方法将光标一定到文件开始位置
f.seek(0, 0)
print('【当前光标的位置(单位字节):】', f.tell())
print('【读取文件所有内容:】', f.read())
# 执行结果:
# 【读取前8个字符:】 哪里有彩虹告诉我
#【当前光标的位置(单位字节):】24
#【当前光标的位置(单位字节):】0
#【读取文件所有内容:】哪里有彩虹告诉我能不能把我的愿望还给我
对文件内容操作的方法对应的操作单位:

根据各种模式,总结如下(+ 表示该模式能够使用的具体操作):

参考文档:
http://www.runoob.com/python/python-files-io.html
[ Python ] 文件的读写操作的更多相关文章
- Python文件的读写操作
Python文件的使用 要点:Python能够以文本和二进制两种形式处理文件. 1.文件的打开模式,如表1: 注意:使用open()函数打开文件,文件使用结束后耀使用close()方法关闭,释放文件 ...
- 『无为则无心』Python基础 — 41、Python中文件的读写操作(一)
目录 1.文件操作步骤 2.文件的读写操作 (1)文件的打开 (2)打开文件模式 (3)获取一个文件对象 (4)关于文件路径 1.文件操作步骤 当我们要读取或者写入文件时,我们需要打开文件,在操作完毕 ...
- python使用装饰器对文件进行读写操作'及遍历文件目录
'''使用装饰器对文件进行读写操作''' # def check_permission(func): # '''演示嵌套函数定义及使用''' # def wrapper(*args,**kwargs) ...
- Python中xlrd、xlwt、win32com模块对xls文件的读写操作
# -*- coding: utf-8 -*- #xlrd和xlwt只支持xls文件读写,openpyxl只支持xlsx文件的读写操作 import xlrd import xlwt import w ...
- INI 文件的读写操作
在C#中对INI文件进行读写操作,在此要引入using System.Runtime.InteropServices; 命名空间,具体方法如下: #region 变量 private static r ...
- Android 对 properties文件的读写操作
-. 放在res中的properties文件的读取,例如对放在assets目录中的setting.properties的读取:PS:之所以这里只是有读取操作,而没有写的操作,是因为我发现不能对res下 ...
- C++学习48 对ASCII文件的读写操作
如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...
- Delphi- ini文件的读写操作
一.读INI文件示例 procedure TForm1.FormCreate(Sender: TObject); Var MyIni :Tinifile; glAppPath :string; beg ...
- android报错及解决2--Sdcard进行文件的读写操作报的异常
报错描述: 对Sdcard进行文件的读写操作的时候,报java.io.FileNotFoundException: /sdcard/testsd.txt (Permission denied),在往S ...
随机推荐
- [洛谷P3181][HAOI2016]找相同字符
题目大意:给你两个字符串,求从两个字符串中各选择一个字串使得这两个字串相同的方案数. 题解:建广义$SAM$,对每个点求出在第一个串中出现次数和第二个串中出现次数,乘起来就行了 卡点:无 C++ Co ...
- bzoj 1207: [HNOI2004]打鼹鼠 (dp)
var n,m,i,j,ans:longint; x,y,time,f:..]of longint; begin readln(n,m); to m do readln(time[i],x[i],y[ ...
- [bzoj] 1588 营业额统计 || Splay板子题
原题 给出一个n个数的数列ai ,对于第i个元素ai定义\(fi=min(|ai-aj|) (1<=j<i)\),f1=a1,求\(/sumfi\) Splay板子题. Splay讲解:h ...
- HDU 2710
Max Factor Time Limit: 2000/1000 MS(Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- Hive架构及应用介绍【链接】
原文链接:https://blog.csdn.net/a2011480169/article/details/51482799
- Java中equals和==的区别?为什么重写equals方法后,一定要重写hashCode方法?
首先明确一点,equals是方法,==是操作符. 1. 如果比较的是基本数据类型: 只讨论==,因为equals是不存在的,因为java中基本数据类型不能调用method的. 2. 如果比较的是引用类 ...
- HDU1298 字典树+dfs
T9 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- Centos7 安装rabbitmq(转载)
原文地址:http://blog.csdn.net/wenyu826/article/details/71108279 安装Erlang 从链接https://packages.erlang-solu ...
- Nginx简介及使用Nginx实现负载均衡的原理【通俗易懂,言简意赅】【转】
Nginx 这个轻量级.高性能的 web server 主要可以干两件事情: 直接作为http server(代替apache,对PHP需要FastCGI处理器支持): 另外一个功能就是作为反向代理服 ...
- oracle 存储过程 技巧
我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集 ...