Python: pathlib基础用法

python操作文件,主要是os和pathlib。建议自己以后用pathlib,有优势

from pathlib import Path

print(Path(__file__)) # 正在运行的代码 d:\Neural Network\SuperPoint\Pytorch_SuperPoint\pytorch-superpoint-master\实验.py
print(Path.cwd()) # 当前工作目录 D:\Neural Network\SuperPoint\Pytorch_SuperPoint\pytorch-superpoint-master


''' 路径拼接 '''
sample1 = Path('D:/Google','DownGit.doc')
sample2 = Path(r'D:\Google','DownGit.doc')
print(sample1,sample2)
# D:\Google\DownGit.doc
# D:\Google\DownGit.doc

''' 创建文件夹,创建文件 '''
a = Path(r'D:\Google','Pathlib')
a.mkdir(exist_ok=True)           # exist_ok = True时,如果文件已存在,则不进行任何操作; 为False时,已存在会报错
b = Path(r'D:\Google','b.txt')   # 只能在已经存在的目录下创建文件
b.touch()

''' 获取目录下的所有文件 '''
path = Path(r'D:\Google')
data = list(path.iterdir()) # 已经是绝对路径了
print(data) 
# [WindowsPath('D:/Google/DownGit-master'), WindowsPath('D:/Google/DownGit.TXT'), WindowsPath('D:/Google/使用Google的方法.doc')]

''' 读取txt '''
a = data[1].read_text()

''' 如果要获得str格式的,只需要加上前缀str即可 '''
data_str = [str(i) for i in data]
print(data_str) 
# ['D:\\Google\\DownGit-master', 'D:\\Google\\DownGit.TXT', 'D:\\Google\\使用Google的方法.doc']


''' 路径判断:文件夹,文件,是否存在 '''
for i in data:
    print(i.is_dir()) 
    print(i.is_file())
    print(i.exists())
# True False True
# False True True
# False True True

''' 获取文件名(有无后缀),获取后缀 '''
for i in data:
    print(i.name,i.stem,i.suffix)
# DownGit-master DownGit-master
# DownGit.TXT DownGit .TXT
# 使用Google的方法.doc 使用Google的方法 .doc


''' pathlib操作COCO数据集实例 '''
data_path = Path(r'D:\Neural Network\COCO\train2014')
images = data_path.iterdir()  # 由于下面for循环要求可迭代即可,因此这里加不加list都可
import cv2
for image in images:
    sample = cv2.imread(str(image))
    cv2.imshow('a',sample)
    cv2.waitKey(0)
    print(' ')

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值