pathlib.Path()

from pathlib import Path
p=Path("/test2")

Path.cwd()

print(p.cwd())
/py3

Path.home()

print(p.home())
/root

Path.iterdir()

print(list(p.iterdir()))
[PosixPath('/test2/p.py'), PosixPath('/test2/aa.txt'), PosixPath('/test2/bb')]

Path.stat()

print(p.stat())
s.stat_result(st_mode=16804, st_ino=296353, st_dev=2053, st_nlink=3, st_uid=500, st_gid=500, st_size=4096, st_atime=1503619754, st_mtime=1503523284, st_ctime=1503523284)

Path.chmod()

print(oct(p.stat().st_mode)[-3:])

p.chmod(0o755)

print(oct(p.stat().st_mode)[-3:])

Path.owner()

print(p.owner())
user00

Path.group()

print(p.group())
user00

Path.glob(pattern)

print(list(p.glob("*.py")))
[PosixPath('/test2/p.py')] print(list(p.glob('**/*.py')))
[PosixPath('/test2/p.py'), PosixPath('/test2/bb/p2.py')]

Path.rglob(pattern)

print(list(p.rglob('*.py')))
[PosixPath('/test2/p.py'), PosixPath('/test2/bb/p2.py')]

Path.expanduser()

p=Path("~/Desktop")
print(p.expanduser())
/root/Desktop

Path.exists()

print(p.exists())
True p=Path("/test2_not_exist")
print(p.exists())
False

Path.is_dir() |  is_file()

print(p.is_dir())
True
print(p.is_file())
False

Path.is_socket() | is_fifo() | is_block_device() | is_char_device() | is_symlink()

Path.mkdir(mode=0o777, parents=False, exist_ok=False)

p=Path("/test2/test2_tree")
p.mkdir(mode=0o644)
print(p.exists())
True p=Path("/test2_no_exist/aa")
p.mkdir()
FileNotFoundError: [Errno 2] No such file or directory: '/test2_no_exist/aa'
p.mkdir(parents=True)
print(p.exists())
True p.mkdir(exist_ok=True)
不会报错

Path.touch(mode=0o666, exist_ok=True)

p=Path("/test2/no_exits_text")
p.touch(mode=0o755)
print(p.exists())
True
print(oct(p.stat().st_mode)[-3:])

Path.open(mode=’r’, buffering=-1, encoding=None, errors=None, newline=None)

p=Path("/test2/aa.txt")
with p.open() as f:
print(f.read())

Path.read_bytes()

print(p.read_bytes())
b'test content\n2test2 content\n'

Path.read_text()

print(p.read_text())
test content
2test2 content

Path.write_bytes(data)

Path.write_text(data,encoding=None,errors=None)

Path.rename(target)p=Path("/test2/test.txt")

p.open("w").write("test content")
target=Path("/test2/test.rename")
p.rename(target)

print(target.open().read())
test content
print(p.exists())
False


Path.replace(target)

无条件替换

Path.resolve()

返回绝对路径

Path.samefile(other_path)

Path.rmdir()

p=Path("/test2/bb")
p.rmdir()
OSError: [Errno 39] Directory not empty: '/test2/bb'
#只能删除空目录

Path.symlink_to()

Path.unlink()

PurePath.suffix

p=Path("/test2/bb/p2.py")
print(p.suffix)
.py
print(p.suffixes)
['.py']

连接路径

print(pathlib.Path('/',"/home","user00"))
/home/user00 def get_home(username):
if username=="root":
return pathlib.Path("/","root")
else:
return pathlib.Path('/','/home',username) print(get_home("root"))
/root
print(get_home("user00"))
/home/user00

[PY3]——IO——pathlib的更多相关文章

  1. [PY3]——IO——文件目录操作

    IO—os.shutil—文件目录操作 目录操作 1. 新建 os.mkdir(path[, mode]) 相当于mkdir,新建目录 os.makedirs(path[, mode]) 相当于mkd ...

  2. [PY3]——IO——文件读写

    文件打开和关闭 # 使用open 打开文件,返回时值是一个 File-like对象 f.open('/test/file') # 使用read读取文件 f.read( ) # 使用close关闭文件 ...

  3. 重启服务器后Docker容器暴露的端口外网突然访问不了!!

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  4. VS2015编译GEOS

    下载链接:http://trac.osgeo.org/geos/ 1. 打开cmake,加载geos源码和定位geos的工程存放位置: 2.点击configure,会报错,首先设置CMAKE_INST ...

  5. 【python】pathlib库

    pathlib在python3.2以上开始默认支持,在python2.7中如果要使用需要安装 pip install pathlib pathlib更多参考资料:http://pathlib.read ...

  6. python运维开发(十)----IO多路复用线程基本使用

    内容目录: python作用域 python2.7和python3.5的多继承区别 IO多路复用 socketserver模块源分析 多线程.进程.协程 python作用域  python中无块级作用 ...

  7. py2与py3区别总结

    1. py2中的str是py3中的bytes py2中的Unicode是py3中的str 声明一个字符串变量时,py2 和py3都是str类型,但py2代表字节类型,py3代表文本类型 隐式转换: p ...

  8. (转)pathlib路径库使用详解

    原文:https://xin053.github.io/2016/07/03/pathlib%E8%B7%AF%E5%BE%84%E5%BA%93%E4%BD%BF%E7%94%A8%E8%AF%A6 ...

  9. [py]django上线部署-uwsgi+nginx+py3/django1.10

    https://github.com/lannyMa/django-uwsgi-nginx.git 单机调试启动-确保项目代码没问题 - 克隆代码进入项目 git clone https://gith ...

随机推荐

  1. Layui:踩坑之我见

    layui.form.on("XXX",function(){});  此方法会有事件冒泡的现象产生,解决方法是return false  或者使用 layui.stope(),但 ...

  2. 将实体转换为Hashtable

    1.将实体转换为Hashtable,用于将实体参数处理为hashtable,方便sql参数传递 /// <summary> /// 将实体转换为Hashtable /// </sum ...

  3. 在Ubuntu16.04里面安装Gogland!

    一,安装 把linux版本的Gogland拷贝到Ubuntu16.04里面,随后在想要存放它的地方解压缩,这样就完成了安装! 二,让Gogland可以快速启动 linux版本的Gogland的启动是用 ...

  4. pandas iterrows()

    按照行遍历,第一个是行索引,第二个是每一行,series类型.

  5. 深入了解java虚拟机(JVM) 第十三章 虚拟机字节码执行引擎

    一.概述 执行引擎是java虚拟机最核心的组成部件之一.虚拟机的执行引擎由自己实现,所以可以自行定制指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式.所有的Java虚拟机的执行 ...

  6. SpringMVC 的映射

    27.1.1 @RequestMapping使用 之前,我们是把@RequestMapping注解放在方法之上,用来给方法绑定一个请求映射.除此以外,@RequestMapping注解还可以放在类的上 ...

  7. zTree第三章,异步加载,前端

    zTree异步加载 ---------------------------------------------------------------------------------- 具体详见API ...

  8. flask后端获取前端post/get数据

    post:用request.form 而且要加上return !!记着加上return get:用 request.args()就可以了

  9. [ActionScript3.0] 使用FileReference处理单个文件的上载

    package { import flash.display.SimpleButton; import flash.display.Sprite; import flash.errors.Illega ...

  10. [CISCO] 思科交换机基本配置

    思科交换机基本配置 交换机是局域网中最重要的设备,交换机是基于 MAC 来进行工作的.和路由器类似,交换 机也有 IOS,IOS 的基本使用方法是一样的.本章将简单介绍交换机的一些基本配置,以及交换 ...