我用subprocess模块调用不同的进程.但是,我有一个问题.
在以下代码中:
callProcess = subprocess.Popen(['ls', '-l'], shell=True)
Run Code Online (Sandbox Code Playgroud)
和
callProcess = subprocess.Popen(['ls', '-l']) # without shell
Run Code Online (Sandbox Code Playgroud)
两者都有效.阅读文档后,我开始知道这shell=True意味着通过shell执行代码.这意味着在缺席的情况下,该过程将直接启动.
那么我应该更喜欢我的情况 - 我需要运行一个进程并获得其输出.从shell内部或外部调用它有什么好处.
我想在几个平台(包括Mac OS)上运行程序,所以我尽量保持它与平台无关.我自己使用Windows,我有一条线os.startfile(file).这适用于我,但不适用于其他平台(我在文档中读到,我没有自己测试过).
是否有适用于所有平台的等效产品?
顺便说一下,该文件是一个.wav文件,但我希望用户能够使用他们的标准媒体播放器,这样他们就可以暂停/回放文件.这就是我使用的原因os.startfile().我也许可以使用允许播放/暂停/倒带媒体文件的库.
我的应用程序将PDF打印到临时文件.如何使用Python中的默认应用程序打开该文件?
我需要一个解决方案
我想为我的简单程序的用户提供打开帮助文件的机会,以指导他们如何充分利用我的程序.理想情况下,我想在我的GUI上有一个蓝色的小帮助链接,可以随时点击,导致.txt文件在本机文本编辑器中打开,例如记事本.
有一个简单的方法吗?
谢谢!
我想知道如何在记事本和图片查看器等程序中打开文件,具体取决于文件的扩展名.我在Windows上使用Python 3.3.
我做了一些研究,人们提到了一个名为的模块Image,但是当我尝试导入这个模块时,我得到了一个ImportError.
这是我到目前为止所拥有的:
def openFile():
fileName = listbox_1.get(ACTIVE)
if fileName.endswith(".jpg"):
fileName.open()
Run Code Online (Sandbox Code Playgroud)
我还将需要在记事本中打开HTML和JSON文件.
有没有一种简单的方法可以从Python命令行工具中获取系统默认编辑器,比如webbrowser模块?
我试图在Python中自动打开Word文档.我对编程非常陌生,我听说这个网站帮助那些遇到麻烦的人.
我看过各种问题,发现了这个:
DummyFile = path_to_docx
with open(DummyFile) as f:
source_stream = io(f.read())
document = doc(source_stream)
source_stream.close()
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我得到:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 74: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)
看来这段代码不是我想要的.我相信它正在尝试阅读我的文档并将其放入变量中.不是我想要的.我想要的命令,执行时,将打开Microsoft Word中的word文档
预期结果:
Word文档在Microsoft Word中打开,如下所示:

当你必须拆分一个命令行,例如调用popen时,最好的做法似乎是
Popen
但是RTFM
shlex类可以很容易地为类似于Unix shell的简单语法编写词法分析器...
那么,win32上的正确方法是什么?那么引用解析和POSIX与非POSIX模式呢?最好的问候,马西莫
我有一个程序,其中帮助文档位于与.py模块相同的文件夹中的.pdf中.我需要该程序使用系统的默认PDF阅读器打开.pdf.
我在我的程序中使用此代码:
if sys.platform.startswith('darwin'):
os.system("SlannanHelp.pdf")
elif sys.platform.startswith('linux'):
os.system("SlannanHelp.pdf")
elif sys.platform.startswith('win32'):
os.filestart("SlannanHelp.pdf")
Run Code Online (Sandbox Code Playgroud)
但是,当在Windows 7中运行时,我收到以下错误:
回溯(最近通话最后一个):文件 "C:\用户\用户\ MousePaw游戏\ MousePaw实验室\ Slannan\Slannan.py",线1286,在help_event os.filestart( "SlannanHelp.pdf")AttributeError的: '模块'对象没有属性'filestart'
我的猜测是os.filestart可以在NT系统中运行,但不能在Windows 7中运行.是否有适用于Windows 7的命令,或者适用于Windows 7的命令?如果是后者,我如何检查用户是否正在运行NT或7版本的Windows?
提前致谢!
我正在尝试使用 eclipse 在 python 中打开 mac 上的文件。
FileName = "/Users/fis/Desktop/installation_guide.txt"
ss = subprocess.Popen(FileName, shell=True)
ss.communicate()
Run Code Online (Sandbox Code Playgroud)
还有os.popen(FileName)。但是文件没有打开。这些代码在 Windows 中运行良好。但是,我不知道mac有什么问题。我想打开一个文件,就像双击windows打开文件一样,而不是像在控制台中读取文件内容和打印一样。文件存在于 Mac 上的桌面位置
我设置了 Python 来创建并打开一个 txt 文件 [请参阅在 Python 中使用默认应用程序打开文档],然后我手动对其进行一些更改并关闭。完成后,我希望 Python 打开下一个 txt 文件。我目前已经进行了这样的设置,以便 python 等待我在关闭文件后键入的键命令,并在该键上打开下一个命令供我编辑。
有没有办法让Python在前一个文档关闭后立即打开下一个文档(即跳过让Python等待按键被单击)。...我将重复此任务大约 100,000 次,因此每一分之一秒的点击都会很快累积起来。我基本上想摆脱与 python 的交互,只是让下一个 txt 文件在前一个 txt 文件关闭后自动出现。
我不知道如何做到这一点,但正在思考等待直到先前的文件关闭(不确定是否有办法让 python 能够判断文件是否打开/关闭)。
作为参考,我使用的是 python2.7 和 Windows。
python ×11
command-line ×2
subprocess ×2
windows ×2
docx ×1
editor ×1
file ×1
linux ×1
macos ×1
platform ×1
popen ×1
python-2.7 ×1
python-3.x ×1
shlex ×1
sys ×1