Python文件操作函数详解:读写文件的常用方法
Python中文件操作是很常见的功能,它可以读取文件内容、修改文件内容、创建和删除文件、以及对文件进行其他的操作,其中读写文件是最常用的几个操作方法。
一、读取文件内容的方法:
1、open()函数
在Python中,想要读/写文件,首先要打开文件,使用通用的IO操作的方法就是使用open()函数打开一个文件,该函数的语法如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
其中,文件名必须是字符串类型,另外有个很重要的参数是mode,用于指定打开文件的模式。常用模式如下所示:
(1)‘r’: 以只读方式打开文件(默认),该文件必须存在。
(2)‘w’: 以写的方式打开文件,如果文件存在,就直接覆盖文件内容,如果文件不存在,就新建一个文件。
(3)‘a’: 以追加方式打开文件,如果文件存在,则直接从文件末尾进行数据写入,如果文件不存在,就新建一个文件。
打开文件后,我们可以使用以下两种方法读取文件的内容:
2、读取整个文件内容:read()
read()方法相当于Java中的读取文件的InputStream类的read()方法,该方法用于读取整个文件的内容,使用该方法时没有参数。
语法:file.read()
示例:
Filepath = "./test.txt"
f = open(Filepath, "r")
cont = f.read()
print(cont)
f.close()
3、读取一行内容:readline()
readline()方法可以用于读取文件内容中的一行,并返回该行的字符串。每次使用该方法时,文件读取指针会自动向后移动一行,因此,可以通过反复调用此方法来读取文件的所有行。
语法:file.readline()
示例:
Filepath = "./test.txt"
f = open(Filepath, "r")
cont = f.readline()# 读取第一行
while cont:
print(cont.strip()) #保证输出不空行
cont = f.readline() #读取下一行
f.close()
4、读取所有行:readlines()
readlines()用于读取文件内容中的所有行,返回一个列表,其中每个列表元素为一个文件中的一行。
语法:file.readlines()
示例:
Filepath = "./test.txt"
f = open(Filepath, "r")
cont = f.readlines()
for line in cont:
print(line.strip())
f.close()
二、修改文件内容的方法:
Python中修改文件的方法非常简单,只需要按照以下步骤即可:
1、打开文件,以写的方式打开
2、使用write()方法向文件中写入修改的内容
3、关闭文件
示例:
Filepath = "./test.txt"
f = open(Filepath, "w")
f.write("this is a modified content!")
f.close()
三、创建和删除文件的方法:
1、文件创建
Python中创建文件很容易,只需要使用open()方法指定创建文件的模式为" (w)",然后写入文件内容即可。
示例:
Filepath = "./new.txt"
f = open(Filepath, "w")
f.write("这是新创建的文件!")
f.close()
2、文件删除
Python中删除文件同样很容易,只需要使用该操作系统下的remove()方法即可,该方法可以删除指定的文件。
示例:
Filepath = "./new.txt"
os.remove(Filepath)
四、文件重命名和移动
Python中文件的重命名也很容易,可以使用本系统下的rename()方法来实现。该方法会将原有的文件名修改为指定的新文件名。
示例:
Filepath = "./test.txt"
NewFilepath = "./renamed.txt"
os.rename(Filepath, NewFilepath)
同样,Python中移动文件到其他目录下也很容易,只需要指定新文件路径即可。
示例:
Filepath = "./test.txt"
NewFilepath = "/newdir/test.txt"
shutil.move(Filepath, NewFilepath)
五、文件属性的修改方法
Python中通过os模块中的stat()函数来获得文件的一些属性信息,例如:文件的访问时间、修改时间、文件大小等。
使用方法为:
os.stat('filepath')
得到的文件属性信息会包括一些元组里的内容,如下所示:
st_mode – inode 节点的模式
st_ino – inode 节点的标志符
st_dev – inode 节点所在的设备
st_nlink – inode 被引用的次数
st_uid – 所有者的用户ID
st_gid – 所有者的组ID
st_size – 文件的大小,如果是目录返回4096
st_atime – 上次访问时间
st_mtime – 上次修改时间
st_ctime – 上次改变时间,包括文件属性和内容的修改时间
Python中也可以通过os模块提供的chmod()方法来修改文件的读写权限。
需要注意的是,要使用该方法必须具有管理员权限,否则将不能修改文件的权限。该方法的使用如下所示:
os.chmod('filepath', 0755)
其中,参数"0755"代表:文件所有者的权限是7(二进制111),即可读可写可执行;文件所在的组的权限是5(二进制101),即可读不可写执行;其他用户的权限是5(二进制101),即可读不可写执行。
以上就是Python读写文件时常用的几种方法。需要注意的是,读文件时遇到的内容分割符是"
",由于系统不同,该符号可能并不是以"
"作为文件的分割符 。另外,编写Python程序时一定要注意异常处理,这是一个好的编程习惯。
