第1章 文件操作篇
本章主要分为4节,前2节对文件、目录的常见操作进行介绍,3节对压缩文件的操作进行了介绍,第4节选择两个示例来将我们所学进行应用。我们可以结合本章所学,应用在工作中其他场景。
一、文件操作
1、文件创建
(1)open函数
Python内置了一个名为open的函数,它可以用于创建、打开和修改文件。
file = open("new_file.txt", "w")
file.close()
使用"new_file.txt"作为文件名,并使用"w"作为访问模式。其中,"w"代表写入模式,它会创建一个新文件,并允许写入内容。
(2)with关键字
在使用open函数创建文件时,我们需要手动关闭文件,以确保资源得到释放。为了简化这个过程,Python提供了一个更好的方式,即使用with关键字。示例如下:
with open("new_file.txt", "w") as file:
# 在这里进行文件操作
pass
2、文件删除
os模块适用于删除单个文件或空目录;
shutil模块适用于删除单个文件或非空目录;
使用外部命令删除文件(os.system(),subprocess.call())则需要慎重考虑命令的风险和安全性。
(1)os.remove()
os模块中的remove()
方法可以直接将指定的文件删除。代码示例如下:
import os
try:
os.remove('test.txt')
print('文件删除成功')
except Exception as e:
print('文件删除失败', e)
需要提醒的是,如果文件不存在,将会抛出文件不存在的异常。注意只能删文件,如果给了一个文件夹路径则会报错。
(2)shutil模块删除文件
shutil模块是Python标准库中的一个文件操作工具模块,其提供了更为丰富的文件操作功能,其中删除文件的函数是os.unlink()。
import shutil
try:
shutil.unlink('file.txt')
print("文件删除成功!")
except Exception as e:
print("文件删除失败:", e)
shutil模块的os.unlink()函数与os模块的os.remove()函数本质上是相同的,都可以用于删除文件。
此外,shutil模块还提供了rmtree()函数用于删除指定路径下的所有文件及其子目录。
import shutil
try:
shutil.rmtree('./test_dir')
print("目录删除成功!")
except Exception as e:
print("目录删除失败:", e)
上述代码将删除指定路径下的test_dir目录及其所有子目录和文件。
(3)使用os.unlink()方法删除文件
import os
try:
os.unlink('test.txt')
print('文件删除成功')
except Exception as e:
print('文件删除失败', e)
os.unlink()方法跟os.remove()方法一样,只能删除文件,不能删除目录。
(4)使用os.system()方法删除文件
os模块还提供了与操作系统交互的方法system()。我们可以使用这个方法来执行运行时脚本命令,并删除文件。示例如下:
import os
try:
os.system('rm test.txt')
print('文件删除成功')
except Exception as e:
print('文件删除失败', e)
需要注意的是,os.system()方法依赖于操作系统,所以可移植性相对较差。除非使用的是类Unix系统,否则请谨慎使用。
(5)使用subprocess.call()删除文件
import subprocess
cmd = "rm -rf ./test_dir"
try:
subprocess.call(cmd, shell=True)
print("命令执行成功!")
except Exception as e:
print("命令执行失败:", e)
上述代码中,通过subprocess.call()函数执行了shell命令rm删除了指定目录下的test_dir目录及其所有文件。
需要