[ 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 ...
随机推荐
- bzoj1588 [HNOI2002]营业额统计 (treap)
平衡树裸题 只需要求前驱后驱 treap写法 const mm=<<; maxnumber=; maxn=; var left,right,fix,key:..maxn]of longin ...
- 38 一次 redis 连接泄露的原因 以及 ShardedJedisPool
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011039332/article/details/85381051前言 这个是接着 上次的 这篇文 ...
- LeetCode中二叉树题目总结
本文仅为博主个人总结,水平有限,欢迎大神指出不妥处. 关于二叉树的相关概念可以参见二叉树的百度百科,或binary tree Wiki. 二叉树结点类的常见定义为: /* Definition for ...
- CodeForces.158A Next Round (水模拟)
CodeForces.158A Next Round (水模拟) 题意分析 校赛水题的英文版,坑点就是要求为正数. 代码总览 #include <iostream> #include &l ...
- warning: React does not recognize the xxx prop on a DOM element
这是React不能识别dom元素上的非标准attribute报出的警告,最终的渲染结果中React会移除这些非标准的attribute. 通常{...this.props}和cloneElement( ...
- 四连测Day3
题目链接:https://pan.baidu.com/s/1_vsHfMI_qO-9IDxmFLkHfg 密码: uza8 T1: 小奥的一笔画,判连通性,查奇偶点即可 #include<ios ...
- UVA11426
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=26&page ...
- C++ 什么是多态
一.什么是多态(Polymorphism) 多态(Polymorphism)是面向对象(Object-Oriented,OO)思想"三大特征"之一,其余两个分别是封装(Encaps ...
- Windows常用shell命令大全(转)
[Windows常用shell命令大全] 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而 ...
- [Luogu 3966] TJOI 2013 单词
经典ACAM. 注意单词之间添加字符,以及对重复单词的处理. #include <cstdio> #include <cstring> #include <queue&g ...