os模块中的rmdir()和chdir()及system()的问题
来源:2-1 os模块(最重要的一节)
龙胆草
2020-03-20 13:42:19
老师,课下练习有几个疑问,请帮忙解答一下:
os.system('calc')打开系统计算器,os.system('cd ..')输出0,为什么cd ..命令不能执行,cd命令和calc的区别是什么(似懂非懂),麻烦老师帮忙讲解一下
os.rmdir('test')并不能删除非空目录(即使test目录下只有一个空文件a.py),那么如何强制删除呢?
当前目录为:'E:\\python-project'
os.listdir()输出:['.idea', 'hello.py', 'homework', 'lesson1.py', 'pay', 'practice', 'venv', '__pycache__']
os.chdir('pay')进入pay目录后,想要返回上一级目录除了os.chdir('E:\\python-project')外,在python交互环境下,有其他的方法可以直接返回上一级目录吗?
1回答
同学你好:
输出0代表执行成功,输出1代表运行出错,并会提示相应错误信息,例如我们在cd后写一个找不到的错误路径就会提示错误信息并输出1:

用cd为什么没有效果呢?这是因为每一次os.system()都相当于重新打开一次cmd窗口,只有连续的输入的命令才能使多条命令在一个子进程中。因此我们可以用&&连接多条命令用os.system()运行即可达到预期的效果,如下图所示:

打开文件夹'abc'可以看到文件夹'aaa'已创建证明可以完成cd操作:

os模块没有提供强制删除非空目录的方法,如果想删除非空目录则需要使用shutil.rmtree()来完成,具体步骤如下:

也可以写成os.chdir('..'),如图:

如果解决了你的疑惑,请采纳,祝学习愉快~
相似问题