os模块中的rmdir()和chdir()及system()的问题

来源:2-1 os模块(最重要的一节)

龙胆草

2020-03-20 13:42:19

老师,课下练习有几个疑问,请帮忙解答一下:

  1. os.system('calc')打开系统计算器,os.system('cd ..')输出0,为什么cd ..命令不能执行,cd命令和calc的区别是什么(似懂非懂),麻烦老师帮忙讲解一下

  2. os.rmdir('test')并不能删除非空目录(即使test目录下只有一个空文件a.py),那么如何强制删除呢?

  3. 当前目录为:'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回答

好帮手慕觉浅

2020-03-20

同学你好:

  1. 输出0代表执行成功,输出1代表运行出错,并会提示相应错误信息,例如我们在cd后写一个找不到的错误路径就会提示错误信息并输出1:

    http://img.mukewang.com/climg/5e74892e09246c4703000053.jpg

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

    http://img.mukewang.com/climg/5e748a4e09bfb3e204130067.jpg

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

    http://img.mukewang.com/climg/5e748aac0958a95205070122.jpg

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

    http://img.mukewang.com/climg/5e748fa109e12a1804050063.jpg

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

    http://img.mukewang.com/climg/5e7486bf09187deb02550090.jpg

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

0

0 学习 · 8160 问题

查看课程