Python如何查找特定名称文件
作者:威斯登
这篇文章主要介绍了Python如何查找特定名称文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python查找特定名称文件
问题描述
遍历“Day1-homework”目录下文件;
找到文件名包含“2020”的文件;
将文件名保存到数组result中;
按照序号、文件名分行打印输出。
result = []
i = 0
for root,dirs,files in os.walk('Day01-homework/'):
#指定目录,返回一个三元组(起始路径,起始路径下的文件夹名,起始路径下的文件名),其中第一个是string,后两个是list
for file_name in files:
if "2020" in file_name: #查找2020字符串是否在文件名里,使用find好像不行
result = [os.path.join(root,file_name).replace('\\','/')]
#join进行字符串拼接,replace将\用/替代,其中'\\'是转义字符
i += 1
j = [i]
print(j + result)其中os.walk()方法是从当前python文件的目录里查找某一文件。
结果如下:
[1, 'Day01-homework/18/182020.docx']
[2, 'Day01-homework/26/26/new2020.txt']
[3, 'Day01-homework/4/22/04:22:2020.txt']
python查找指定格式文件并复制到指定目录
1、需求
在linux 系统下,会对一些应用代码进行编译,生成".a"、".so"一类的文件到不同的目录和文件夹下,最后在调用时需要把他们放一个目录中,如果手动用指令实现非常不方便,现通过python来已经快速实现。
小记:
- .a文件,是LINUX系统中的静态链接库文件。
- .so文件, 是LINUX系统中的动态链接库,名字形式多为 “libxxx.so” 后缀名为 “.so”
2、实现
以下是通过 查找某个文件夹下".h"文件的例子,找到后加入到list中,再通过【复制】或【剪切】函数到指定目录,代码如下:
import os, shutil
file_list = []
# 搜索函数--可搜索指定目录上的文件夹下的文件。
def search_file(root, target):
for file in os.listdir(root):
path = root
try:
path = path + os.sep + file
if os.path.isdir(path):
search_file(path, target)
else:
if file.split('.')[-1] == target:
file_list.append(path)
except PermissionError as e:
print(e)
return file_list
# 批量移动函数
def move_file(file_list, dest):
for file in file_list:
try:
shutil.move(file, dest)
except shutil.Error as e:
print(e)
# 批量复制函数
def move_file(file_list, dest):
for file in file_list:
try:
shutil.opy(file, dest)
except shutil.Error as e:
print(e)
# 写入目标参数root,
def main():
# ---- windows
# root = "D:\\pic1"
# target = "png"
# dest_dir = "D:\\ABC\\pic2"
# -- linux --
root = "/home/dsoftbus/cpp/pycopy"
target = "h"
dest_dir = "/home/dsoftbus/copy_file_h"
result = search_file(root, target)
print(result)
# 剪切文件
# move_file(result, dest_dir)
# 复制文件
copy_file(result,dest_dir)
print("复制成功!!")
if __name__ == '__main__':
main()总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
