python将所有指定文件放到同一个文件夹中再恢复

今天需要把所有pdf文件加上水印再放回去,但是这些文件不是都在同一个文件夹下面,PDFELEMENT6 PRO添加文件的时候不太方便,所以就把这些东西先放到同一个文件夹下,处理后再放回去。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os
import shutil

base_dir = '/Users/xxxx/Desktop/Temp/fff/'
target_dir = '/Users/xxxx/Desktop/Temp/all_files'

os.makedirs(target_dir, exist_ok=True)
record = {}

def get_dir_pdfs(base_dir):
global record
for i in os.listdir(base_dir):
dir_name = os.path.join(base_dir, i)
if os.path.isdir(dir_name):
get_dir_pdfs(dir_name)
elif os.path.isfile(dir_name):
if dir_name.lower().endswith(".pdf"):
file_name = dir_name.split("/")[-1]
if file_name in record:
print("ERROR")
else:
record[file_name] = dir_name
shutil.copyfile(dir_name, os.path.join(target_dir, file_name))

get_dir_pdfs(base_dir)

处理完之后

1
2
3
4
5
6
added_watermark = '/Users/xxxx/Desktop/Temp/added_watermark/Watermark'

for i in record:
new_pos = os.path.join(added_watermark, i)
os.remove(record[i])
shutil.copyfile(new_pos, record[i])