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. php 5.6 与之前版本不兼容中的数组属性定义辨析

    在php5.6官方文档的不兼容页(http://php.net/manual/zh/migration56.incompatible.php)中提到了几个与以前版本不兼容的情况,其中提到了为类定义数组 ...

  2. docker查看挂载目录命令

    docker inspect -f "{{.Mounts}}"  692691b7416 692691b7416为containerId

  3. 【Dnc.Api.Throttle】适用于.Net Core WebApi接口限流框架

    Dnc.Api.Throttle    适用于Dot Net Core的WebApi接口限流框架 使用Dnc.Api.Throttle可以使您轻松实现WebApi接口的限流管理.Dnc.Api.Thr ...

  4. cannot connect cube with sharepoint dashboard designer

    需要下载WindowsIdentityFoundation-SDK-4.0进行安装

  5. ANE-如何加入ane,调试时又不报错

    有时候我们加入ane,即使没有调用ane的功能,debug的时候也会报错无法调试,这是为什么呢?因为我们的ane没有把default包含进去. 首先我们的extension.xml要把default节 ...

  6. Promise之你看得懂的Promise

    本文由作者陈旭锋(任职网易考拉)授权网易云社区发布. Promise源码详解 学习知识要善于思考,思考,再思考. -- 爱因斯坦 1.回调地狱 曾几何时,我们的代码是这样的,为了拿到回调的结果,不得不 ...

  7. iterrows() 函数对dataframe进行遍历

    for循环遍历dataframe,返回有一个元祖类型,第一个是行的索引,第二个是series,是每一行的内容.

  8. 2018-2019-2 20165219《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165219<网络对抗技术>Exp2 后门原理与实践 实验内容 使用netcat获取主机操作Shell,cron启动 使用Socat获取主机操作Shell, 任 ...

  9. php全局变量漏洞 $GLOBALS

    在Discuz代码中有这么一段: if (isset($_REQUEST[‘GLOBALS’]) OR isset($_FILES[‘GLOBALS’])) {  exit(‘Request tain ...

  10. SpringBoot整合MyBatis及Thymeleaf

    http://www.cnblogs.com/ludashi/archive/2017/05/08/6669133.html 上篇博客我们聊了<JavaEE开发之SpringBoot工程的创建. ...