Python中如何在Windows系统下用脚本打开文件

工作需要频繁用 python 脚本解密一类文件

python decode.py abc.sec
得到 abc.txt
然后用 notepad++ 打开查看

每次在 console 运行这个挺烦的, 还要去填写文件路径

能不能直接双击打开 abc.sec , 选择某个应用程序(第一次, 之后直接打开)
然后自动调用 python decode.py abc.sec , 然后用 notepad++ 打开解密后的文件

怎么生成这样一个 exe 文件呢, 不懂 windows 编程
哪位大侠知道有什么开源的,或者快捷实现的方法


谢谢
Python中如何在Windows系统下用脚本打开文件


11 回复

用 Pyinstaller 可以生成 exe。自己写个 pip 包也能生成 exe。


在Windows下用Python脚本打开文件,最直接的方法是使用os.startfile()。这相当于在资源管理器里双击文件,系统会用关联的默认程序打开它。

import os

# 打开一个文件,比如一个txt文档
file_path = r'C:\Users\YourName\Documents\example.txt'
os.startfile(file_path)

# 也可以打开一个文件夹
folder_path = r'C:\Users\YourName\Desktop'
os.startfile(folder_path)

核心要点:

  • os.startfile() 是Windows特有的方法,在其他操作系统(如Linux或macOS)上不可用。
  • 传入的参数是文件的完整绝对路径。使用原始字符串(前缀 r)可以避免反斜杠 \ 被解释为转义字符。
  • 这个方法调用是异步的。脚本会立即继续执行,不会等待你关闭打开的文件或程序。

如果你想跨平台,或者需要更精细的控制(比如等待程序结束),可以用 subprocess 模块:

import subprocess
import sys

def open_file_cross_platform(file_path):
    """尝试用系统默认程序打开文件,支持Windows、macOS和主流Linux。"""
    try:
        if sys.platform == 'win32':
            # Windows
            os.startfile(file_path)
        elif sys.platform == 'darwin':
            # macOS
            subprocess.run(['open', file_path], check=True)
        else:
            # Linux (假设有xdg-open)
            subprocess.run(['xdg-open', file_path], check=True)
    except Exception as e:
        print(f"无法打开文件: {e}")

# 使用示例
open_file_cross_platform(r'C:\path\to\your\file.pdf')

总结:在Windows上,用 os.startfile(文件路径) 最省事。

写个批处理,批处理就负责运行 python 脚本并用 notepad++打开生成的文件。再改下注册表把.sec 文件关联到这个批处理就行了

谢谢
off
python D:\tools<a target="_blank" href=“http://decode.py” rel=“nofollow noopener”>decode.py %*

我写了这个好像不行啊

其实我不是想 py2exe, 我是想生成一个 exe 的壳,实现快捷操作

python 应该也可以调用 windows 的接口来打开 notepad++?

有个东西叫做 import os。。。

写一个 Python,最厚加上 os.system(‘notepad.exe output.txt’)
就行了么

批处理加个壳,py 文件默认用批处理执行
pythonshell.cmd
<br> off<br>C:\yourpath\python.exe %1<br><br>rem keep terminal window<br>pause<br>

那可以试试写个脚本实现以上功能,然后在注册表中设置那个文件类型的关联命令为 python.exe <a target="_blank" href="http://你写的脚本.py" rel="nofollow noopener">你写的脚本.py</a> "%1"

没看清是执行*.sec
道理一样改成"C:\yourpath\python.exe decode.py %1"就行了

cmd 里面有 ftype 和 assoc
可以在命令行里面创建文件关联

回到顶部