Python: os模块实例详解
admin
2023-07-30 21:00:47
0
import os

操作文件

# I use jupyter notebook 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

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...