60 lines
3.1 KiB
Python
60 lines
3.1 KiB
Python
from pandas import read_excel
|
||
from requests import get
|
||
from sys import exit
|
||
import os
|
||
import numpy as np
|
||
|
||
def download(url, pic_path_name):
|
||
format_file = url.split(".")[-1].lower()
|
||
if format_file not in ["png", "pdf", "jpg", "jpeg"]:
|
||
input("文件格式出现错误,请联系程序开发者!")
|
||
exit()
|
||
result = get(url)
|
||
file = pic_path_name + "." + format_file
|
||
with open(file, "wb") as f:
|
||
f.write(result.content)
|
||
|
||
if __name__ == "__main__":
|
||
skip_str = ["(空)", "(跳过)", "" ,float('nan')] #遇到这几种字符串的时候跳过
|
||
dir_path = input("请输入 .xls / .xlsx 文件所在文件夹的绝对或相对路径:")
|
||
for root, _, files in os.walk(dir_path):
|
||
for file in files:
|
||
print(file.lower())
|
||
if file.lower().endswith('.xls') or file.lower().endswith('.xlsx'):
|
||
excel_path = os.path.join(root, file)
|
||
df = read_excel(excel_path)
|
||
print("正在处理 " + file + " ...")
|
||
dir_name = file.split('.')[0]
|
||
os.mkdir(dir_name)
|
||
for one in range(len(df)):
|
||
path_name = './' + dir_name + '/' + str(df["2、购买日期 格式:年+月+日 如 2025.10.19"][one]) + " 【" + str(df["4、金额"][one]) + "】 " + df["3、购买物品"][one] + " " + df["1、你的姓名"][one]
|
||
if not os.path.exists(path_name):
|
||
os.mkdir(path_name)
|
||
# 处理购买记录截图
|
||
buy_prt_sc = df["7、订单截图(如淘宝订单截图)"][one]
|
||
if buy_prt_sc not in skip_str and isinstance(buy_prt_sc, str):
|
||
download(buy_prt_sc, "./" + path_name + "/订单截图")
|
||
else:
|
||
print(f"第{one + 1}个购买记录截图被跳过")
|
||
# 处理支付记录截图
|
||
pay_prt_sc = df["6、支付记录(如微信支付/支付宝支付记录截图)"][one]
|
||
if pay_prt_sc not in skip_str and isinstance(pay_prt_sc, str):
|
||
download(pay_prt_sc, "./" + path_name + "/支付记录截图")
|
||
else:
|
||
print(f"第{one + 1}个支付截图记录被跳过")
|
||
|
||
# 处理发票
|
||
invoice = df["8、发票(注意一定要上传pdf格式!)"][one]
|
||
if invoice not in skip_str and isinstance(invoice, str):
|
||
download(invoice, "./" + path_name + "/发票")
|
||
else:
|
||
print(f"第{one + 1}个发票被跳过")
|
||
# 处理行程单
|
||
itinerary = df["9、电子行程单(pdf)"][one]
|
||
if itinerary not in skip_str and isinstance(itinerary, str):
|
||
download(itinerary, "./" + path_name + "/行程单")
|
||
else:
|
||
print(f"第{one + 1}个行程单被跳过")
|
||
|
||
print(f"共计{len(df)}, 已完成{one + 1}")
|
||
print(file + " 处理完毕!") |