Python subprocess模块如何改变工作目录

本文探讨了Python脚本如何在工作目录切换问题,介绍了使用os.system调用cd的局限性,并重点讲解了如何通过subprocess.run设置工作目录来避免错误,提供了解决实际项目中跨目录执行Linux命令的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python调用Linux系统命令,也就是Python与Linux系统交互,要么需要使用os库,要么需要使用subprocess库(command 库 在python3 已经不再支持)。

具体使用参照连接,Python调用执行Linux系统命令(四种方法)

需要解决的问题:

        在实际使用过程中,脚本文件 和 工作文件在不同的目录中,需要对工作目录进行切换。

第一反应是调用 cd  命令,然后在执行自己的命令:

val = os.system(‘cd /home/kali’)

 在执行自己的命令是,报错,无法找到文件。

 原因:通过查阅了解到,任何进程都不能改变另一个进程的工作目录(至less在类UNIX的操作系统上,而在Windows上),这个调用将会使子shell改变其目录并立即退出

 

解决方法

subprocess 模块中的其他方法都有一个cwd参数。此参数确定要执行进程的工作目录。

 ret = subprocess.run(‘ls’, shell=True, cwd=‘/home/kali’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值