您的位置:首页 > 编程语言 > Python开发

Python: os模块实例详解

2016-08-20 20:59 721 查看
import os


操作文件

# to create some file
touch foo.txt
echo Hello > foo.txt
cat foo.txt


Hello


# rename file
os.rename('foo.txt','bar.txt')
!cat bar.txt


Hello


# remove file
os.remove('bar.txt')


改变目录

# current dir
print os.getcwd() # current working directory


/Users/yongle/OMOOC2py/cheat


# go down
os.chdir('img')
print os.getcwd()

# go back up
os.chdir(os.pardir) #or simply os.chdir('..')
print os.getcwd()


/Users/yongle/OMOOC2py/cheat/img
/Users/yongle/OMOOC2py/cheat


遍历目录
listdir

# listdir
!touch a.txt b.txt
for file in os.listdir('.'):
# os.listdir() return a list
if file.endswith('.txt'):
print file


a.txt
b.txt


遍历
os.walk

os.chdir('doc')


# 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


['folder1', 'folder2']
['.DS_Store', 'a.txt', 'b.txt']


增删目录

单层目录

# make a dir, one level, no duplication allowed
os.mkdir('test')


# remove a dir, one level, not empty will raise OSError
os.rmdir('test')


多层目录

# make dirs, multipul level
os.makedirs('test/mulitiple/levels')


# remove all empty directories above it, ensure empty
os.removedirs('test/mulitiple/levels')


非空目录

# remove non empty dir, ust a new module shutil.rmtree
# copy function is also useful
import shutil


# 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'))


# remove non empty folder
shutil.rmtree('backup/')


os.path模块

# is a dir or not
print(os.path.isdir('img'))
print(os.path.isdir('a.txt'))


True
False


# is a file or not
print(os.path.isfile('img'))
print(os.path.isfile('a.txt'))


False
True


# 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'))


True
True False


# 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'))


/Users/john
/john
/Users/john/a.txt


# split a pathname. Returns "(head, tail)"
# where "tail" is everything after the final slash.
os.path.split('/Users/john/a.txt')


('/Users/john', 'a.txt')


# split the extension from a pathname
os.path.splitext('/Users/john/a.txt')


('/Users/john/a', '.txt')


# determine the size of a path(file or dir)
os.path.getsize('a.txt')


0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python os