最近公司有个小需求,自动下载邮件并按文件名分类,再上传到FTP,并且要求上传的路径要以每日的日期命名;整体思路是自动下载邮件到“D:\maildownload” ;再以另一个脚本对下载的邮件按文件名分类,存入本地新建的文件夹,脚本自动上传到FTP;
目前遇到的问题,脚本A定时每日新建文件夹,然后脚本B来自动对已经下载的邮件分类并存入文件夹;本地抓取最新建立的文件夹;
脚本A:
import os
def find_newest_file(path_file):
lists = os.listdir(path_file)
lists.sort(key=lambda fn: os.path.getmtime(path_file + '\\' + fn))
print(lists)
file_newest = os.path.join(path_file, lists[-1])
return file_newest
if __name__ == '__main__':
file_newest = find_newest_file(find_newest_file(find_newest_file(r'D:\汇报')))
print(file_newest)
返回的结果:
['2022']
['08月']
['08-17']
D:\汇报\2022\08月\08-17
脚本B:
# coding:utf-8
import os
import re # 正则表达式库
import shutil # shell工具,操纵文件
import new
path = "D:\\maildoload" # 要整理该目录下的文件
List = [0, 0, 0] # 初始化列表
List[0] = re.compile(r'金融') # 创建匹配模式,下同
List[1] = re.compile(r'石油')
List[2] = re.compile(r'建筑')
n = len(List)
List2 = ['金融', '石油', '建筑']
for i in range(n):
if not os.path.exists("D:\\每日汇报\\" + List2[i]):
os.makedirs("D:\\每日汇报\\" + List2[i]) # 创建分类文件夹(已存在会出错),
# 可创在任意位置(自选),这里创建在E盘
for folderName, subfolders, filenames in os.walk(path):
for filename in filenames:
print(filename)
for i in range(n):
if List[i].search(filename): # 若匹配到,则为True
print(folderName + "\\" + filename)
shutil.copy((folderName + "\\" + filename, print(new.file_newest) + List2[i])) # 复制文件到相应文件夹
break
返回的结果:
File "C:/Users/p/PycharmProjects/pythonProject2/11/分类.py", line 100, in <module>
shutil.copy((folderName + "\\" + filename, print(new.file_newest) + List2[i])) # 复制文件到相应文件夹
AttributeError: module 'new' has no attribute 'file_newest'
我这里如何把脚本A的路径传入脚本B,shutil.copy这里呢??求大神指点,能给完整代码更好