Python文件读写

本文详细介绍Python中文件的基本操作,包括文件的打开与关闭、读取与写入、内容定位等核心功能,并提供实用代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、打开文件

f = open("D:\\test.txt", "r")

说明:
第一个参数是文件名称,包括路径;第二个参数是打开的模式mode
'r':只读
'w':只写。如果文件不存在,则自动创建文件;如文件已存在,则覆盖该文件
'a':附加到文件末尾
'r+':读写
如果需要以二进制方式打开文件,需要在mode后面加上字符"b",比如"rb""wb"等

 


二、读取内容

目前常使用以下三种方式读取内容:read(), readlines(), readline()

 

f.read()   #读取文件所有内容
f.read(size)   #设定读取的数量
f.readline()   #读取文件一行的内容。再次输入时,读取下一行
f.readlines()   #读取所有的行到数组里面[line1,line2,...,lineN]。该方法避免将所有文件内容加载到内存中,便于提高效率


三、写入文件

 

在打开模式为r+、w、a的情况下,可往文件中写入字符串。

 

f.write("string")
s1="abc";s2="123";s3="ABC"
f.writelines([s1,s2,s3])   #写入多个字符串时,使用writelines。writelines不会换行,即所有字符串被合并在一行内。

 

 

四、文件中的内容定位
f.read()读取之后,文件指针到达文件的末尾,如果再次运行f.read()将会发现读取的是空内容。如果想重新读取全部内容,必须将定位指针移动到文件开始:

 

f.seek(0)

如想回到特定位置,代码如下:

 

 

f.seek(offset,from_what)

 

特定位置 = 从参考点向前移动offset个字符数。参考点由from_what决定,from_what = 0代表从文件开头计算,from_what = 1代表从当前指针所在位置计算,from_what = 2代表从文件末尾计算。from_what可以省略设置,默认为0,即从头计算。如offset为负值,即向后移动offset个字符数。

查看当前指针所在位置,可使用:

 

f.tell()

 

举些例子解释下。假设一个文档有50个字符数。

 

f = open("test.txt","r")
f.read()
f.tell()   #49L,指针在文档末端(Python从0计数,所以为49)
f.seek(0); f.tell()   #0L,指针在文档开头
f.seek(5,0); f.tell()   #5L,指针从头开始向前移动了5个字符数。如此时使用f.read(),将从第6个字符数读取文档。
f.seek(10,1); f.tell()   #15L,指针从刚刚所在的位置5向前移动10个字符数
f.seek(10,2); f.tell()   #59L,指针从文档末尾49L向前移动10个字符数
f.seek(-10,2); f.tell()   #39L,指针从文档末尾49L向后移动10个字符数

 

 

 

五、关闭文件
文件操作完毕后关闭文件,可以释放资源供其他程序使用。尤其是在写入文件时,完成后要及时关闭文件,防止意外写入更多内容。

 

f.close()

 

 

 

 

其它:

更改当前读取文件路径

 

import os
os.getcwd()   #查询当前路径
os.chdir("D:\\Documents\\...")

 

 

 

 

参考文章

1、python中读写文件及中文编码处理方法  

http://blog.163.com/longsu2010@yeah/blog/static/17361234820113521439979/

2、Python >> 2.7.12 >> Documentation >> The Python Tutorial >> 7. Input and Output

https://docs.python.org/2/tutorial/inputoutput.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值