python 弹窗选择文件并判断文件是否被打开

详细代码

# -*- ecoding: utf-8 -*-
# @ModuleName: test002
# @Function: 
# @Author: darling
# @Time: 2022-06-01 13:46


import os
import re
import sys
import time
import tkinter as tk
from tkinter import filedialog

from loguru import logger

# 实例化
root = tk.Tk()
root.withdraw()

def exit_sys(msg):
    logger.info(msg)
    logger.info('程序退出··· ···')
    time.sleep(3)
    sys.exit()


# 判定文件是否打开
def fileIsOpen(filepath):
    # filepath = C:/Users/Administrator/Desktop/新用户创建.xlsx  #获取文件的目录
    filef = os.path.split(filepath)  # 文件路径和文件名拆开
    excelname = filef[-1]
    excelpath = filef[0]
    hidefilename = excelpath + r"/~$" + excelname  # 拼接出隐藏文件的文件路径
    if os.path.exists(hidefilename):
        return True
    else:
        return False


def exists_file(file_name):
    return os.path.exists(file_name)


def check_file_type(f_path):
    txt = re.compile(r'\.xlsx$')
    if txt.search(f_path) is None:
        # logger.info('只允许xlsx文件')
        exit_sys('文件格式格式不正确,只允许xlsx文件')
    if not exists_file(f_path):
        exit_sys(f_path + ' 文件不存在,请在当前目录检查必要文件')
    if fileIsOpen(f_path):
        exit_sys(f_path + ' 文件被占用,请关闭')

# 弹窗选择文件,并获取文件路径
def get_file_path():
    # 获取文件夹路径
    f_path = filedialog.askopenfilename()
    logger.info('获取的文件地址:{}', f_path)
    # 文件校验
    check_file_type(f_path)
    return f_path


if __name__ == '__main__':
    get_file_path()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值