python写一个exe程序,功能判断一定是.txt格式文件拖到exe程序上,exe程序才能启动,否则弹窗提示“请拖动文件到程序上方”,然后点击确定结束exe程序,exe程序正常启动后自动获取.txt文件的路径及名字,判断exe程序同目录下其他文件及格式不一致的就删除其他文件
时间: 2024-05-02 10:21:13 浏览: 86
通过Py2exe将自己的python程序打包成.exe/.app的方法
以下是一个实现该功能的Python程序:
```python
import os
import sys
import ctypes
import winreg
# 获取当前exe程序所在目录
exe_dir = os.path.dirname(sys.executable)
# 获取.txt文件关联的文件类型
try:
with winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, '.txt') as key:
file_type = winreg.QueryValue(key, 'Content Type')
except:
file_type = None
# 判断是否拖入了.txt文件
if len(sys.argv) > 1 and sys.argv[1].endswith('.txt'):
# 获取拖入的文件路径
file_path = sys.argv[1]
# 删除同目录下的其他文件
for file_name in os.listdir(exe_dir):
if file_name != os.path.basename(sys.argv[0]) and not file_name.endswith('.txt'):
os.remove(os.path.join(exe_dir, file_name))
else:
# 弹窗提示
ctypes.windll.user32.MessageBoxW(None, '请拖动文件到程序上方', '提示', 0x40)
sys.exit()
# 执行其他操作
print('已获取.txt文件的路径及名字:', file_path)
```
该程序首先获取当前exe程序所在目录,然后通过Win32 API读取.txt文件关联的文件类型。接着判断是否拖入了.txt文件,如果是则获取文件路径并删除同目录下的其他文件;如果不是则弹窗提示并结束程序。最后执行其他操作,这里只是简单地打印了.txt文件的路径及名字。
注意,由于该程序使用了Win32 API,因此只能在Windows操作系统上运行。如果需要在其他操作系统上运行,需要使用不同的GUI库和API。
阅读全文