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()