所以我仍然在教自己Python,我想为我的服务器创建一个小脚本,它会告诉我我的硬盘是否已安装,如果不是在我登录时为我安装它。(我在{{{ 1}})。
我面临的问题是:
~/.bashrc
如何判断try:
with open('/media/Hitachi/mountfile.txt', 'r') as f:
print(f.readline())
except:
print('HDD is not mounted')
if not os.path.exists('/media/Hitachi/media'):
print('Attempting to mount HDD')
script = subprocess.call('mountscript.sh', shell=True)
是否成功?
答案 0 :(得分:4)
subprocess.call方法返回进程的returncode
,以便您可以检查以查看调用是否成功。
>>> subprocess.call(["ls", "-l"])
0
>>> subprocess.call("exit 1", shell=True)
1
答案 1 :(得分:0)
为什么不是简单的if / else语句并使用check_call
if os.path.exists('/media/Hitachi/mountfile.txt'):
print("it's mounted")
else:
print('HDD is not mounted')
if not os.path.exists('/media/Hitachi/media'):
print('Attempting to mount HDD')
script = subprocess.check_call(['mountscript.sh','2>file.txt'], shell=True)
无论如何,故事的寓意是不要忘记subprocess.call()或check_call()的命令参数的括号