判断文件创建时间 并存入数据库__将公司绩效存到数据库

本文介绍了一个Python脚本,该脚本用于遍历指定目录下的所有子目录及文件,并获取每个文件的创建时间。通过使用os模块来获取目录结构,pandas和sqlalchemy进行数据处理和存储。脚本最终将最新的文件内容存入MySQL数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: UTF-8 -*-

import os.path
import os
import time
import datetime
import pandas as pd
from sqlalchemy import create_engine
# 先获取到一级目录


def traversalDir_FirstDir(path):

    list = []  # 定义一个列表,用来存储结果

    if (os.path.exists(path)):

        files = os.listdir(path)  # 获取该目录下的所有文件或文件夹目录
        for file in files:

            m = os.path.join(path, file)  # 得到该文件下所有目录的路径

            if (os.path.isdir(m)):
                h = os.path.split(m)
                list.append(h[1])

    return list

# 然后在获取一级目录下面文件日期最大的


def scan_files(directory, prefix=None, postfix=None):
    files_list = []

    for root, sub_dirs, files in os.walk(directory):
        for special_file in files:
            if postfix:
                if special_file.endswith(postfix):
                    files_list.append(os.path.join(root, special_file))
            elif prefix:
                if special_file.startswith(prefix):
                    files_list.append(os.path.join(root, special_file))
            else:
                files_list.append(os.path.join(root, special_file))

    return files_list


# 获取文件的创建时间
def get_FileCreateTime(filePath):
    t = os.path.getctime(filePath)
    d = datetime.datetime.fromtimestamp(t)
    str_time = d.strftime("%Y-%m-%d %H:%M:%S")
    return str_time


if __name__ == '__main__':

    conn = create_engine(
        'mysql+pymysql://public:123456@192.168.0.22:3307/product_value?charset=utf8')
    main_path = r'//192.168.0.145/账户净值'
    for two_path_ in traversalDir_FirstDir(main_path):
        two_path = main_path+r'/'+two_path_
        df = pd.DataFrame()

        for file_names in scan_files(two_path):
            create_times = get_FileCreateTime(file_names)
            df = df.append({'create_time': create_times,
                            'file_name': file_names}, ignore_index=True)
            df = df.sort_values(ascending=False, by='create_time')

        df = pd.read_excel(df.values[0][1])

        pd.io.sql.to_sql(df, two_path_, con=conn, if_exists='replace')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值