前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python: os模块实例详解

Python: os模块实例详解

作者头像
用户2183996
发布2018-06-28 10:44:51
7960
发布2018-06-28 10:44:51
举报
文章被收录于专栏:技术沉淀技术沉淀
代码语言:javascript
复制
import os

操作文件

代码语言:javascript
复制
# I use jupyter notebook to create some file
!touch foo.txt
!echo Hello > foo.txt
!cat foo.txt
代码语言:javascript
复制
Hello
代码语言:javascript
复制
# rename file
os.rename('foo.txt','bar.txt')
!cat bar.txt
代码语言:javascript
复制
Hello
代码语言:javascript
复制
# remove file
os.remove('bar.txt')

改变目录

代码语言:javascript
复制
# current dir
print os.getcwd() # current working directory
代码语言:javascript
复制
/Users/yongle/OMOOC2py/cheat
代码语言:javascript
复制
# go down
os.chdir('img')
print os.getcwd()

# go back up
os.chdir(os.pardir) #or simply os.chdir('..')
print os.getcwd()
代码语言:javascript
复制
/Users/yongle/OMOOC2py/cheat/img
/Users/yongle/OMOOC2py/cheat

遍历目录listdir

代码语言:javascript
复制
# listdir
!touch a.txt b.txt
for file in os.listdir('.'):
    # os.listdir() return a list
    if file.endswith('.txt'):
        print file
代码语言:javascript
复制
a.txt
b.txt

遍历os.walk

代码语言:javascript
复制
os.chdir('doc')
代码语言:javascript
复制
# Directory tree generator.
# For each dir in the dir tree rooted at top (including top
# itself, but excluding '.' and '..'), yields a 3-tuple
# dirpath, dirnames, filenames
for dirpath, dirnames, filenames in os.walk('.'):
    print dirnames
    print filenames
    break # only one level needed, or just use listdir
代码语言:javascript
复制
['folder1', 'folder2']
['.DS_Store', 'a.txt', 'b.txt']

增删目录

单层目录
代码语言:javascript
复制
# make a dir, one level, no duplication allowed
os.mkdir('test')
代码语言:javascript
复制
# remove a dir, one level, not empty will raise OSError
os.rmdir('test') 
多层目录
代码语言:javascript
复制
# make dirs, multipul level
os.makedirs('test/mulitiple/levels')
代码语言:javascript
复制
# remove all empty directories above it, ensure empty
os.removedirs('test/mulitiple/levels')
非空目录
代码语言:javascript
复制
# remove non empty dir, ust a new module shutil.rmtree
# copy function is also useful
import shutil
代码语言:javascript
复制
# copy a.txt to backup folder
# or just shutil.copy('a.txt','backup/')
# use shutil.copytree to copy a folder like cp -r
os.mkdir('backup')
shutil.copy('a.txt',os.path.join('backup','a_backup.txt'))
代码语言:javascript
复制
# remove non empty folder
shutil.rmtree('backup/')

os.path模块

代码语言:javascript
复制
# is a dir or not
print(os.path.isdir('img'))
print(os.path.isdir('a.txt'))
代码语言:javascript
复制
True
False
代码语言:javascript
复制
# is a file or not
print(os.path.isfile('img'))
print(os.path.isfile('a.txt'))
代码语言:javascript
复制
False
True
代码语言:javascript
复制
# determine the presence of path(a file or dir); os.path.lexists?
print(os.path.exists('img'))
print(os.path.exists('a.txt'))
print(os.path.exists('none_exist.txt'))
代码语言:javascript
复制
True
True
False
代码语言:javascript
复制
# Join two or more pathname components, inserting '/' as needed.
# If any component is an absolute path, 
# all previous path components will be discarded.
print(os.path.join('/Users','john'))
print(os.path.join('/Users','/john'))
print(os.path.join('/Users','john','a.txt'))
代码语言:javascript
复制
/Users/john
/john
/Users/john/a.txt
代码语言:javascript
复制
# split a pathname. Returns "(head, tail)" 
# where "tail" is everything after the final slash.
os.path.split('/Users/john/a.txt')
代码语言:javascript
复制
('/Users/john', 'a.txt')
代码语言:javascript
复制
# split the extension from a pathname
os.path.splitext('/Users/john/a.txt')
代码语言:javascript
复制
('/Users/john/a', '.txt')
代码语言:javascript
复制
# determine the size of a path(file or dir)
os.path.getsize('a.txt')
代码语言:javascript
复制
0
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.07.14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作文件
  • 改变目录
  • 遍历目录listdir
  • 遍历os.walk
  • 增删目录
    • 单层目录
      • 多层目录
        • 非空目录
        • os.path模块
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档