Python3基础 os mkdirs 创建多层文件夹

  •        Python : 3.7.0
  •          OS : Ubuntu 18.04.1 LTS
  •         IDE : PyCharm 2018.2.4
  •       Conda : 4.5.11
  •    typesetting : Markdown

code

coder@Ubuntu:~$ source activate py37
(py37) coder@Ubuntu:~$ ipython
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import os

In [2]: os.makedirs('/home/coder/1/2/3/4')  # 如果目录已经存在则抛出异常

In [3]: os.makedirs('/home/coder/1/2/3/4-1')  # 这个不算存在,可以正常运行

In [4]: os.makedirs('/home/coder/1/2/3/4-1')  # 抛异常
---------------------------------------------------------------------------
FileExistsError                           Traceback (most recent call last)
<ipython-input-4-782835991ba7> in <module>()
----> 1 os.makedirs('/home/coder/1/2/3/4-1')  # 抛异常

~/anaconda3/lib/python3.6/os.py in makedirs(name, mode, exist_ok)
    218             return
    219     try:
--> 220         mkdir(name, mode)
    221     except OSError:
    222         # Cannot rely on checking for EEXIST, since the operating system

FileExistsError: [Errno 17] File exists: '/home/coder/1/2/3/4-1'

In [5]: exit
(py37) coder@Ubuntu:~$ source deactivate
coder@Ubuntu:~$ 

result

coder@Ubuntu:~$ ls -l
总用量 92
drwxr-xr-x  3 coder coder  4096 10月  2 14:30 1
drwxr-xr-x 23 coder coder  4096 9月  30 18:41 anaconda3
drwxr-xr-x  4 coder coder  4096 10月  2 11:57 Desktop
drwxr-xr-x  2 coder coder  4096 10月  1 01:40 Documents
drwxr-xr-x  2 coder coder  4096 10月  1 01:40 Downloads
-rw-r--r--  1 coder coder  8980 9月  30 17:26 examples.desktop
-rwxrwxr-x  1 coder coder  2354 4月  28  2009 get-fonts.sh
-rw-rw-r--  1 coder coder  1042 4月  28  2009 get-fonts.sh.zip
drwxr-xr-x  2 coder coder  4096 10月  1 01:40 Music
drwxr-xr-x  3 coder coder  4096 10月  2 14:22 not_exist_dir_father
drwxr-xr-x  3 coder coder 12288 10月  1 17:38 Pictures
drwxr-xr-x  2 coder coder  4096 10月  1 01:40 Public
drwxr-xr-x 11 coder coder  4096 9月  30 18:51 pycharm-2018.2.4
drwxrwxr-x  5 coder coder  4096 10月  2 12:04 PycharmProjects
drwxr-xr-x  3 coder coder  4096 9月  30 22:09 snap
drwxr-xr-x  2 coder coder  4096 10月  1 01:40 Templates
drwxr-xr-x  2 coder coder  4096 9月  30 18:51 ubuntu_software
drwxr-xr-x  2 coder coder  4096 10月  1 01:40 Videos
coder@Ubuntu:~$ tree 1
1
└── 2
    └── 3
        ├── 4
        └── 4-1

4 directories, 0 files
coder@Ubuntu:~$ 

more knowledge

coder@Ubuntu:~$ source activate py37
(py37) coder@Ubuntu:~$ ipython
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: os.makedirs('E:\a\b\c')  # 小的意外而带来的思考
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-ce8df6231567> in <module>()
----> 1 os.makedirs('E:\a\b\c')  # 小的意外而带来的思考

NameError: name 'os' is not defined

In [2]: import os

In [3]: os.makedirs('E:\a\b\c')  # 小的意外而带来的思考

In [4]: ls -l
总用量 92
drwxr-xr-x 23 coder coder  4096 9月  30 18:41  anaconda3/
drwxr-xr-x  4 coder coder  4096 10月  2 11:57  Desktop/
drwxr-xr-x  2 coder coder  4096 10月  1 01:40  Documents/
drwxr-xr-x  2 coder coder  4096 10月  1 01:40  Downloads/
drwxr-xr-x  2 coder coder  4096 10月  2 14:28 'E:ac'/
-rw-r--r--  1 coder coder  8980 9月  30 17:26  examples.desktop
-rwxrwxr-x  1 coder coder  2354 4月  28  2009  get-fonts.sh*
-rw-rw-r--  1 coder coder  1042 4月  28  2009  get-fonts.sh.zip
drwxr-xr-x  2 coder coder  4096 10月  1 01:40  Music/
drwxr-xr-x  3 coder coder  4096 10月  2 14:22  not_exist_dir_father/
drwxr-xr-x  3 coder coder 12288 10月  1 17:38  Pictures/
drwxr-xr-x  2 coder coder  4096 10月  1 01:40  Public/
drwxr-xr-x 11 coder coder  4096 9月  30 18:51  pycharm-2018.2.4/
drwxrwxr-x  5 coder coder  4096 10月  2 12:04  PycharmProjects/
drwxr-xr-x  3 coder coder  4096 9月  30 22:09  snap/
drwxr-xr-x  2 coder coder  4096 10月  1 01:40  Templates/
drwxr-xr-x  2 coder coder  4096 9月  30 18:51  ubuntu_software/
drwxr-xr-x  2 coder coder  4096 10月  1 01:40  Videos/

In [5]: # drwxr-xr-x  2 coder coder  4096 10月  2 14:28 'E:ac'/

In [6]: # 居然创建出了这样名字的文件夹,还没报错......

In [7]: exit
(py37) coder@Ubuntu:~$ source deactivate
coder@Ubuntu:~$ 

resource

  • [文档] docs.python.org/3
  • [规范] www.python.org/dev/peps/pep-0008
  • [规范] zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules
  • [源码] www.python.org/downloads/source
  • [ PEP ] www.python.org/dev/peps
  • [平台] www.cnblogs.com
  • [平台] gitee.com


Python具有开源、跨平台、解释型、交互式等特性,值得学习。
Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。

原文地址:https://www.cnblogs.com/xingchuxin/p/10426350.html