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 ] 文件的读写操作的更多相关文章

  1. Python文件的读写操作

    Python文件的使用 要点:Python能够以文本和二进制两种形式处理文件. 1.文件的打开模式,如表1:  注意:使用open()函数打开文件,文件使用结束后耀使用close()方法关闭,释放文件 ...

  2. 『无为则无心』Python基础 — 41、Python中文件的读写操作(一)

    目录 1.文件操作步骤 2.文件的读写操作 (1)文件的打开 (2)打开文件模式 (3)获取一个文件对象 (4)关于文件路径 1.文件操作步骤 当我们要读取或者写入文件时,我们需要打开文件,在操作完毕 ...

  3. python使用装饰器对文件进行读写操作'及遍历文件目录

    '''使用装饰器对文件进行读写操作''' # def check_permission(func): # '''演示嵌套函数定义及使用''' # def wrapper(*args,**kwargs) ...

  4. Python中xlrd、xlwt、win32com模块对xls文件的读写操作

    # -*- coding: utf-8 -*- #xlrd和xlwt只支持xls文件读写,openpyxl只支持xlsx文件的读写操作 import xlrd import xlwt import w ...

  5. INI 文件的读写操作

    在C#中对INI文件进行读写操作,在此要引入using System.Runtime.InteropServices; 命名空间,具体方法如下: #region 变量 private static r ...

  6. Android 对 properties文件的读写操作

    -. 放在res中的properties文件的读取,例如对放在assets目录中的setting.properties的读取:PS:之所以这里只是有读取操作,而没有写的操作,是因为我发现不能对res下 ...

  7. C++学习48 对ASCII文件的读写操作

    如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...

  8. Delphi- ini文件的读写操作

    一.读INI文件示例 procedure TForm1.FormCreate(Sender: TObject); Var MyIni :Tinifile; glAppPath :string; beg ...

  9. android报错及解决2--Sdcard进行文件的读写操作报的异常

    报错描述: 对Sdcard进行文件的读写操作的时候,报java.io.FileNotFoundException: /sdcard/testsd.txt (Permission denied),在往S ...

随机推荐

  1. [洛谷P5068][Ynoi2015]我回来了

    题目大意:给你一张$n(n\leqslant10^3)$个点$m(m\leqslant10^5)$个点的无向无权图,多组询问,每次询问给你一些二元组$(x_i,y_i)$,求有多少个$u$于至少一个二 ...

  2. BZOJ2657:[ZJOI2012]旅游——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2657 https://www.luogu.org/problemnew/show/P2610 到了难 ...

  3. HDU1561:The more, The Better——题解

    http://acm.hdu.edu.cn/showproblem.php?pid=1561 ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允 ...

  4. Codeforces Round #402 (Div. 2) A B C sort D二分 (水)

    A. Pupils Redistribution time limit per test 1 second memory limit per test 256 megabytes input stan ...

  5. Android之极光推送发送自定义消息

    Android端实现主要代码: <span style="font-size:14px;">import java.io.IOException; import jav ...

  6. Linux检测硬盘读取速度

    1. 清空缓存 > /proc/sys/vm/drop_caches 2. 测试读取速度 a. 将/dev/zero中数据按1M的数据单位写入testfile,共写512个单位,并不通过缓存 c ...

  7. mixin模式特点

    mixin模式特点: 1.单一功能, 2.不和基类关联,可以和任意基类组合,基类可以不和mixin关联就可以初始化成功 3.不使用 super() 用法

  8. 适配器模式 C#

    适配器模式 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. ● Target目标角色:该角色定义把其他类转换为何种接口,也就是我们的期望接 ...

  9. jenkins Process leaked file descriptors

    https://stackoverflow.com/questions/17024441/process-leaked-file-descriptors-error-on-jenkins 1. BUI ...

  10. 【BZOJ5010】【FJOI2017】矩阵填数 [状压DP]

    矩阵填数 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 给定一个 h*w 的矩阵,矩阵的行 ...