Python中的文件操作基础
引言
在Python编程中,文件操作是一项基础且重要的技能。无论是读取数据、保存结果,还是进行文件管理,掌握如何在Python中高效地操作文件对于任何开发者来说都是必要的。本文将详细介绍Python中进行文件操作的基本方法,包括文件的打开、读取、写入、关闭以及一些高级操作。
一、打开文件
在python中,使用内置的open()函数来打开一个文件。这个函数需要至少一个参数:文件路径。另外通过模式参数来制定打开文件的模式,例如只读(r)、只写(w)追加(a)等。
注意:
r -> rt -> read text 以文本方式打开文件读,文件存在,打开成功,文件不存在,打开失败
w -> wt -> write text 以文本方式打开文件写,不管文件是否存在,都会新创建一个新文件
a -> at -> append text 以文件方式打开文件追加,文件不存在,创建文件,文件存在,那么打开文件然后将光标移动到文件的最后
rb 以二进制形式打开文件读取
wb 以二进制形式打开文件写入
ab 以二进制形式打开文件追加
# 打开文件进行读取
file = open('example.txt', 'r')
# 打开文件进行写入
file = open('example.txt', 'w')
二、读取文件
打开文件后,可以使用read()
, readline()
, 或 readlines()
等方法来读取文件内容。
read()
read(size=-1)
方法用于从文件中读取并返回文件内容。如果提供了size
参数,它将读取并返回最多size
个字符(在文本模式下)或size
个字节(在二进制模式下)【读取指定的字节数的文件内容 ,如果文件最后没有内容了,那么read的返回值是空字符串 , "" 一般指定4096】。如果没有指定size
或指定为负数,则会读取并返回整个文件。
# 打开文件
with open('example.txt', 'r') as file:
# 读取整个文件内容
content = file.read()
# 输出文件内容
print(content)
readline()
readline(size=-1)
方法用于从文件中读取一行。如果提供了size
参数,它将读取该行的最多size
个字符。即使size
参数被指定,readline()
也会在到达行末或文件末尾时停止读取。通常,readline()
方法在每次调用时读取文件的下一行。
# 打开文件
with open('example.txt', 'r') as file:
# 逐行读取文件内容
line = file.readline()
while line:
print(line, end='') # 使用end=''来防止打印额外的换行符
line = file.readline()
readlines()
readlines(hint=-1)
方法用于从文件中读取所有行,并将它们作为字符串列表返回。每个列表元素代表文件的一行。如果提供了hint
参数,则会读取总字符数大约为hint
的行数,这可以用于读取大文件的开始部分。
# 打开文件
with open('example.txt', 'r') as file:
# 读取所有行并返回列表
lines = file.readlines()
# 输出文件的每一行
for line in lines:
print(line, end='')
注意事项:
1、在处理大文件时,应该避免使用read()和readline(),因为它们会一次性的将整个文件加载到内存中。相反,逐行读取(使用readline()或迭代器)更加内高效。
2、readlines()可以方便地一次读取所有行,但在处理非常大的文件时,应考虑逐行读取。
3、文件读取完成后,文件指针会移动到文件末尾,再次调用读取方法将返回空字符串或空列表。
4、使用with语句可以确保文件在读取完成后自动关闭,这是一种良好的编程习惯。
三、写入文件
写入文件同样简单,我们可以使用write()
或writelines()
方法来将字符串写入文件。
前提: 使用该函数时,打开文件时,必须要给定写入权限,要具有写入模式
# 写入字符串到文件
file.write('Hello, Python!')
# 将字符串列表写入文件
lines = ['Hello, Python!', 'Welcome to file operations.']
file.writelines(lines)
四、关闭文件
完成文件操作后,我们应该使用close()
方法来关闭文件,以释放系统资源。
file.close()
五、使用with语句进行文件操作
为了确保文件在使用后正确关闭,推荐使用with
语句来处理文件操作。这样可以自动管理文件的打开和关闭,即使在发生异常时也能保证文件被关闭。
# 使用with语句读取文件
with open('example.txt', 'r') as file:
content = file.read()
# 使用with语句写入文件
with open('example.txt', 'w') as file:
file.write('Goodbye, Python!')
六、高级文件操作
除了基本的文件读写,Python还提供了一系列高级文件操作,如文件的复制、移动、删除等。这些操作通常通过os
和shutil
模块来实现。
import os
import shutil
# os
# 重命名文件
os.rename('old_name.txt', 'new_name.txt'
# 创建目录(如果目录存在,会报错)
os.mkdir('test_dir')
# 获得当前工作目录(即当前所在位置)getcwd(current work directory)
cwd = os.getcwd()
print(cwd)
# 获取当前目录下文件列表
file_list = os.listdir('.')
print(file_list)
for file in file_list:
print(file)
# 删除文件
os.remove('a.txt')
# 删除目录(文件夹) 文件夹不为空不能删除(需要先把里面的文件删除完再删除文件夹)
os.rmdir('C:/a/b/c')
# 复制文件
shutil.copy('source.txt', 'destination.txt')
# 移动文件
shutil.move('source.txt', 'destination_directory')
# 删除文件
os.remove('unnecessary_file.txt')
练习-复制一个文件
以下是复制文件的逻辑,有助于代码的编写
def file_copy(src,dst):
# 以读取的方式打开源文件
file_r = open(src,'r')
# 以写的方式打开目标文件
file_w = open(dst,'w')
# 循环
while Ture:
# 读取文件内容
content = file_r.read(1024)
# 将读取的文件内容,写入到另一个文件中
if content == '':
print('文件拷贝成功')
break
file_w.write(content)
# 关闭文件
file_r.close()
file_w.close()
#调用函数
file_copy('a.txt','b.txt')
结语:
文件操作是Python编程中不可或缺的一部分。通过本文的介绍,您应该能够掌握如何在Python中进行基本的文件读取和写入操作,以及一些常见的高级文件管理技巧。实践是最好的学习方式,不妨通过一些小项目来锻炼您的文件操作技能。记住,合理运用with
语句能够让您的代码更加健壮和安全。