Windows 中的 Python os.mknod

Posted

技术标签:

【中文标题】Windows 中的 Python os.mknod【英文标题】:Python os.mknod in windows 【发布时间】:2016-01-30 00:44:04 【问题描述】:

我试图在 Windows 7 的 Python 3.5.0 中使用 os.mknod 函数,但我发现错误:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    os.mknod
AttributeError: module 'os' has no attribute 'mknod'

我猜它应该在那里,因为https://docs.python.org/3/library/os.html 没有说明可用性有限。是否有其他选项可用于 Windows 中的类似功能?我只是想在特定路径中创建一个空文件,我在想调用open(path, 'w') 有点难看。

我不知道这是否是特定于版本的问题,因为我以前从未在 Windows 中使用过 Python。

【问题讨论】:

这个问题是asked before,但没有答案。 是的,我找到了 :( 但是我试图提供更多关于我的具体问题(操作系统、版本等)的信息,并可能要求提供替代方案。 在 Windows 上没有 POSIX mknod 的直接等效项。设备使用\\.\ 前缀。设备名称是通过DefineDosDevice 每次登录创建的,但实际的设备对象目标是由驱动程序创建的。例如,\\.\nul 链接到原生 \Device\Null 命名管道通过CreateNamedPipe 创建并通过命名管道文件系统\\.\pipe(本机\Device\NamedPipe)访问。文件系统目录是通过CreateDirectory 创建的。常规文件通过CreateFile创建和打开,也可以打开以\\.\为前缀的设备。 所以,这基本上意味着没有可移植的方式来创建一个空文件,而不是 tan open? 【参考方案1】:

由于commit in 2016,这是now documented:

可用性:Unix。

【讨论】:

以上是关于Windows 中的 Python os.mknod的主要内容,如果未能解决你的问题,请参考以下文章

Python 中的 Windows 路径

如何知道windows中的进程是不是在python中运行

Python 中的数据包嗅探(Windows)

什么相当于使用 python 的 windows 中的 sigusr1-2 信号?

python的Tkinter中的Windows进度条

Windows 中的 Python os.mknod