python - 在python中通过windows cmd用记事本打开服务器上的文件

标签 python cmd server

我正在尝试使用 Windows cmd 打开位于服务器上的文件。我所做的基本上是以下事情:

import os 
os.system('pushd '+ \\Server\PathToFile)
os.system('start Notepad '+ NameOfFile)

重点是,如果我在 cmd 中手动输入它,这就会起作用。如果我尝试在 python 中执行此操作,则它不起作用。我收到此错误消息:

CMD.EXE was started with the path given above as current directory.
UNC-paths are not supported, therefore the windows-directory is used as 
current directory.

实际的错误消息是德语的,这就是我翻译它的原因,我不确定它是否可以理解。实际发生的情况是,记事本查找当前文件的路径是 C:\Windows,而不是我指示的路径。

最佳答案

Windows 不支持将当前目录设置为 UNC 路径,并且无论如何它都不会起作用,因为它们是 2 个单独的 os.system 命令。

您可以在此路径上安装驱动器并使用os.chdir,但这会使它变得更加复杂!

您实际上并不需要更改当前目录。此外,os.system已被弃用,建议使用subprocess代替。

因此,更改您的代码以运行提供文件完整路径的命令:

import subprocess
subprocess.call(["start","notepad",os.path.join("\\Server\PathToFile",NameOfFile)],shell=True)

但我怀疑你会更好

os.startfile(os.path.join("\\Server\PathToFile",NameOfFile))

(Windows的默认关联可能会在后台打开“记事本”,一行且简单,用户甚至可以通过更改Windows中的文本文件关联来更改使用的编辑器)

关于python - 在python中通过windows cmd用记事本打开服务器上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45779490/

相关文章:

windows - 如何在不打开新的 cmd 窗口的情况下从命令行启动程序?

amazon-web-services - 有谁知道如何减少 AWS 上的数据传出费用?

python - TypeError at/news/, html() 不带参数

python - Django检查任何存在的查询

python - TIA Bloomberg 历史请求覆盖 ​​Python

command-line - cmd/C 是什么意思?

python - 类型错误 "Bad input argument to theano function"

windows - CMD提示-bat文件-Taskkill命令忽略启动/等待

server - 服务器能否找出哪些消息主题有订阅者?

server - 分析 Java 8 Release 144 中的堆使用情况 - 功能已删除?那么如何分析堆呢?