为了根据名称创建存档或查找文件,可以使用Python标准库中的os模块,该模块提供了一系列与操作系统交互的函数和变量。下面是详细的Python根据名称创建存档和查找文件的攻略:
根据名称创建存档
1. 使用os模块创建存档
import os
current_dir = os.getcwd() # 获取当前工作目录
folder_name = "my_folder" # 要创建的文件夹名称
file_name = "my_archive.zip" # 要创建的存档文件名称
folder_path = os.path.join(current_dir, folder_name) # 拼接要创建的文件夹的完整路径
os.makedirs(folder_path, exist_ok=True) # 创建文件夹,如果已经存在,则不会报错
archive_path = os.path.join(current_dir, file_name) # 拼接要创建的存档文件的完整路径
os.system(f"zip -r {archive_path} {folder_name}") # 创建存档文件,使用zip命令行工具
上述代码中,使用os模块中的getcwd()函数获取当前工作目录,使用os.path.join()函数拼接完整路径,使用os.makedirs()函数创建文件夹,如果已经存在,则不会报错。使用os.system()函数执行zip命令行工具将文件夹压缩为存档文件,存档文件的命名可以自行定义。
2. 使用shutil模块创建存档
除了使用os模块的系统命令,还可以使用shutil模块提供的高级操作,更加稳定、方便。
import os
import shutil
current_dir = os.getcwd() # 获取当前工作目录
folder_name = "my_folder" # 要创建的文件夹名称
file_name = "my_archive.zip" # 要创建的存档文件名称
folder_path = os.path.join(current_dir, folder_name) # 拼接要创建的文件夹的完整路径
os.makedirs(folder_path, exist_ok=True) # 创建文件夹,如果已经存在,则不会报错
archive_path = os.path.join(current_dir, file_name) # 拼接要创建的存档文件的完整路径
shutil.make_archive(archive_path, "zip", folder_path) # 创建存档文件,使用shutil模块自带的函数
上述代码中,使用os模块中的getcwd()函数获取当前工作目录,使用os.path.join()函数拼接完整路径,使用os.makedirs()函数创建文件夹,如果已经存在,则不会报错。使用shutil模块中的make_archive()函数创建存档文件,第一个参数是文件名,第二个参数是压缩类型,第三个参数是要压缩的文件夹。
根据名称查找文件
1. 使用os模块查找文件
import os
current_dir = os.getcwd() # 获取当前工作目录
file_name = "my_file.txt" # 要查找的文件名称
for root, dirs, files in os.walk(current_dir): # 递归查找当前目录下的所有文件和子目录
if file_name in files: # 如果文件在当前目录下的文件列表中,则输出文件的完整路径
file_path = os.path.join(root, file_name)
print(file_path)
上述代码中,使用os模块中的getcwd()函数获取当前工作目录,使用os.walk()函数递归查找当前目录下的所有文件和子目录,如果文件在当前目录下的文件列表中,则输出文件的完整路径。使用os.path.join()函数拼接完整路径。
2. 使用glob模块查找文件
除了使用os模块递归查找,也可以使用glob模块提供的通配符查找,更加简单快捷。
import glob
file_name = "my_file.txt" # 要查找的文件名称
file_paths = glob.glob(f"**/{file_name}", recursive=True) # 执行通配符查找
for file_path in file_paths: # 输出每个匹配到的文件路径
print(file_path)
上述代码中,使用glob模块的glob()函数执行通配符查找,第一个参数是通配符,使用**表示递归查找,第二个参数是是否递归查找。使用for循环遍历每一个匹配到的文件路径,进行输出。
这些就是Python根据名称创建存档和查找文件的攻略,我们可以根据自己的需要进行使用。