Python与bash间创建/删除文件夹命令的对应关系

  • 对应关系
Pythonbash功能
os.mkdirmkdir创建单个文件夹
os.makedirs(exist_ok=True)mkdir -p创建多个文件夹
os.rmdir“rm -d” or “rmdir”删除单个空文件夹
os.removedirsrmdir -p删除多个空文件夹
shutil.rmtreerm -r删除某个文件夹和其中全部内容
  • Python 示例
>>> def list_files(startpath):
...     '''list content in dir like a tree
...     adpated from https://stackoverflow.com/questions/9727673/list-directory-tree-structure-in-python'''
...     import os
...     for root, dirs, files in os.walk(startpath):
...         level = root.replace(startpath, '').count(os.sep)
...         indent = '-' * 4 * (level)
...         print('{}{}/'.format(indent, os.path.basename(root)))
...         subindent = '-' * 4 * (level + 1)
...         for f in files:
...             print('{}{}'.format(subindent, f))
... 
>>> import os
>>> list_files('.')
./
>>> os.mkdir('foo')
>>> list_files('.')
./
----foo/
>>> os.makedirs('foo/bar/baz')
>>> list_files('.')
./
----foo/
--------bar/
------------baz/
>>> os.makedirs('fop/bar/baz')
>>> list_files('.')
./
----fop/
--------bar/
------------baz/
----foo/
--------bar/
------------baz/
>>> open('fop/bar/baz/tmp.txt', 'a').close()
>>> list_files('.')
./
----fop/
--------bar/
------------baz/
----------------tmp.txt
----foo/
--------bar/
------------baz/
>>> os.rmdir('foo/bar/baz')
>>> 
>>> list_files('.')
./
----fop/
--------bar/
------------baz/
----------------tmp.txt
----foo/
--------bar/
>>> os.removedirs('foo/bar')
>>> list_files('.')
./
----fop/
--------bar/
------------baz/
----------------tmp.txt
>>> os.rmdir('fop')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 66] Directory not empty: 'fop'
>>> list_files('.')
./
----fop/
--------bar/
------------baz/
----------------tmp.txt
>>> os.removedirs('fop/bar/baz')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/chrww/anaconda3/lib/python3.7/os.py", line 239, in removedirs
    rmdir(name)
OSError: [Errno 66] Directory not empty: 'fop/bar/baz'
>>> list_files('.')
./
----fop/
--------bar/
------------baz/
----------------tmp.txt
>>> import shutil
>>> shutil.rmtree('fop')
>>> list_files('.')
./
>>> 
  • bash示例
ouayas-MacBook-Air:test chrww$ tree
.

0 directories, 0 files
ouayas-MacBook-Air:test chrww$ mkdir foo
ouayas-MacBook-Air:test chrww$ tree
.
└── foo

1 directory, 0 files
ouayas-MacBook-Air:test chrww$ mkdir -p foo/bar/baz
ouayas-MacBook-Air:test chrww$ tree
.
└── foo
    └── bar
        └── baz

3 directories, 0 files
ouayas-MacBook-Air:test chrww$ mkdir -p fop/bar/baz
ouayas-MacBook-Air:test chrww$ tree
.
├── foo
│   └── bar
│       └── baz
└── fop
    └── bar
        └── baz

6 directories, 0 files
ouayas-MacBook-Air:test chrww$ touch fop/bar/baz/tmp.txt
ouayas-MacBook-Air:test chrww$ tree
.
├── foo
│   └── bar
│       └── baz
└── fop
    └── bar
        └── baz
            └── tmp.txt

6 directories, 1 file
ouayas-MacBook-Air:test chrww$ rm -d foo/bar/baz
ouayas-MacBook-Air:test chrww$ tree
.
├── foo
│   └── bar
└── fop
    └── bar
        └── baz
            └── tmp.txt

5 directories, 1 file
ouayas-MacBook-Air:test chrww$ mkdir -p foo/bar/baz
ouayas-MacBook-Air:test chrww$ tree
.
├── foo
│   └── bar
│       └── baz
└── fop
    └── bar
        └── baz
            └── tmp.txt

6 directories, 1 file
ouayas-MacBook-Air:test chrww$ rmdir foo/bar/baz
ouayas-MacBook-Air:test chrww$ tree
.
├── foo
│   └── bar
└── fop
    └── bar
        └── baz
            └── tmp.txt

5 directories, 1 file
ouayas-MacBook-Air:test chrww$ rmdir -p foo/bar
ouayas-MacBook-Air:test chrww$ tree
.
└── fop
    └── bar
        └── baz
            └── tmp.txt

3 directories, 1 file
ouayas-MacBook-Air:test chrww$ rmdir -p foo/bar/baz
rmdir: foo/bar/baz: No such file or directory
ouayas-MacBook-Air:test chrww$ tree
.
└── fop
    └── bar
        └── baz
            └── tmp.txt

3 directories, 1 file
ouayas-MacBook-Air:test chrww$ rmdir fop
rmdir: fop: Directory not empty
ouayas-MacBook-Air:test chrww$ tree
.
└── fop
    └── bar
        └── baz
            └── tmp.txt

3 directories, 1 file
ouayas-MacBook-Air:test chrww$ rmdir -p fop/bar/baz
rmdir: fop/bar/baz: Directory not empty
ouayas-MacBook-Air:test chrww$ tree
.
└── fop
    └── bar
        └── baz
            └── tmp.txt

3 directories, 1 file
ouayas-MacBook-Air:test chrww$ rm -r fop
ouayas-MacBook-Air:test chrww$ tree
.

0 directories, 0 files
ouayas-MacBook-Air:test chrww$ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值