我一直坚持使用我的脚本。脚本就是这个
import subprocess
import os
def Windows():
SW_MINIMIZE = 6
info = subprocess.STARTUPINFO()
info.dwFlags = subprocess.STARTF_USESHOWWINDOW
info.wShowWindow = SW_MINIMIZE
print(os.path.isdir("C:\Program Files (x86)"))
while True:
try:
subprocess.Popen(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe', startupinfo=info)
except WindowsError:
subprocess.Popen(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', startupinfo=info)
else:
try:
subprocess.Popen(r'C:\Program Files\Mozilla Firefox\firefox.exe', startupinfo=info)
except WindowsError:
subprocess.Popen(r'C:\Program Files\Google\Chrome\Application\chrome.exe', startupinfo=info)
我想要做的是检查计算机是64位还是32位(因为我想在没有使用subprocess
的窗口的情况下打开浏览器。)来找到浏览器chrome
或{{ 1}},取决于用户具有哪一个(我假设他们中的任何一个)。由于chrome和firefox的路径在64位与32位计算机(程序文件和程序文件(x84))之间有所不同,我想出了这个脚本,它检测x86文件夹是否存在。如果是,则继续在用于搜索浏览器的文件夹上。但是,如果没有,则假定它是32位并搜索firefox
文件夹,并在该文件夹中搜索浏览器。
但是,当我运行脚本时,我收到此错误
Program Files
但是,在我的脚本中,它甚至不应该转到Traceback (most recent call last):
File "C:\Users\Charchit\Desktop\via.py", line 29, in <module>
Windows()
File "C:\Users\Charchit\Desktop\via.py", line 13, in Windows
subprocess.Popen(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', startupinfo=info)
File "C:\Python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
部分,因为我有一个32位系统并且while True
文件夹不存在!
答案 0 :(得分:2)
您实际上并未查看是否os.path.isdir("C:\Program Files (x86)")
。你只是打印它。
而不是
print(os.path.isdir("C:\Program Files (x86)"))
while True:
你需要做
if os.path.isdir(r"C:\Program Files (x86)"):
旁注:
chrome和firefox都传统上将自己放在路径上,因此您很有可能只能subprocess.Popen('firefox.exe')
/ subprocess.Popen('chrome.exe')
。
答案 1 :(得分:-1)
用于创建路径使用不会弄乱路径的内置函数python函数
if os.path.exists(os.path.join('C:', os.path.sep(), 'Program Files')):
# do your stuff