当前位置: 首页 > news >正文

手机电子商务网站建设策划书企业推广视频

手机电子商务网站建设策划书,企业推广视频,做网站哪家好 张家口,做推送的网站文件路径模块pathlib 文章目录文件路径模块pathlib1.概述2.创建路径2.1.创建非windos平台路径2.2.动态拼接路径joinpath2.3.替换文件名称 with_name2.4.创建固定目录2.5.创建文件夹和文件1.创建多级目录mkdir2.创建空文件3.路径解析3.1.根据路径分隔符解析路径parts3.2.获取父级…

文件路径模块pathlib

文章目录

  • 文件路径模块pathlib
    • 1.概述
    • 2.创建路径
      • 2.1.创建非windos平台路径
      • 2.2.动态拼接路径joinpath
      • 2.3.替换文件名称 with_name
      • 2.4.创建固定目录
      • 2.5.创建文件夹和文件
        • 1.创建多级目录mkdir
        • 2.创建空文件
    • 3.路径解析
      • 3.1.根据路径分隔符解析路径parts
      • 3.2.获取父级目录parent
      • 3.3.获取路径最后一个部分name
    • 4.目录内容
      • 4.1.访问路径下所有文件iterdir
      • 4.2.正则匹配文件glob
    • 5.读写文件
    • 6.文件类型
    • 7.文件属性
      • 7.1.stat获取文件属性
      • 7.2.stat判断文件属性方法
    • 8.权限
    • 9.删除
      • 9.1.删除空目录
      • 9.2.删除目录文件

1.概述

前面介绍的os.path模块操作文件路径是基于字符串的底层操作,这篇文章介绍的pathlib模块也是处理文件路径,但是它比os.path模块操作更加方便。
pathlib模块提供了一个面向对象API接口来 解析、创建、测试和处理文件和路径。

2.创建路径

2.1.创建非windos平台路径

PurePath:代表并不访问实际文件系统的“纯路径”,只负责对路径字符串执行操作,不会在磁盘上创建路径及文件。PurePath有两个子类,即PurePosixPath和PathWindowsPath,分别代表UNIX风格的路径和Windows风格的路径。
Path:代表访问实际文件系统的“真正路径”。Path对象可用于判断对应的文件是否存在、是否为文件、是否为目录等。有两个子类,即PosixPath和WindowsPath。

import pathlib# PurePosixPath非windows平台,创建一个路径对象
usr = pathlib.PurePosixPath('/usr')
print(usr)# 拼接路径
usr_local = usr / 'local'
print(usr_local)usr_share = usr / pathlib.PurePosixPath('share')
print(usr_share)root = usr / '..'
print(root)etc = root / '/etc/'
print(etc)

运行结果

/usr
/usr/local
/usr/share
/usr/..
/etc

2.2.动态拼接路径joinpath

如果创建的路径是未知的,可以将各个路径作为参数使用joinpath拼接。

import pathlibroot = pathlib.PurePosixPath('/')
subdirs = ['usr', 'local']
usr_local = root.joinpath(*subdirs)
print(usr_local)

运行结果

/usr/local

2.3.替换文件名称 with_name

当给定一个包含文件的路径时,我们想替换这个路径的文件名称,如果使用分隔符操作虽然可以获取到文件名称进行替换,但是操作有些复杂,这里提供了一个函数能够直接替换文件名称,他们都是返回新对象,原对象保持不变。

  • with_name函数用来替换路径中文件名
  • with_suffix函数修改文件后缀
import pathlibind = pathlib.PurePosixPath('source/pathlib/index.rst')
print(ind)
# 替换文件名称
py = ind.with_name('pathlib_from_existing.py')
print(py)# 替换文件后缀
pyc = py.with_suffix('.pyc')
print(pyc)

运行结果

source/pathlib/index.rst
source/pathlib/pathlib_from_existing.py
source/pathlib/pathlib_from_existing.pyc

2.4.创建固定目录

当我们创建目录时候可以指定一个固定目录,然后在目录后拼接路径。省去了每次都要写一个绝对路径,path类为我们提供了常用的方法,例如home方法获取当前系统的家目录,cwd方法获取当前工作目录。

import pathlibhome = pathlib.Path.home()
print('home: ', home)cwd = pathlib.Path.cwd()
print('cwd : ', cwd)

运行结果

home:  /Users/edy
cwd :  /Users/edy/my_pathlib

2.5.创建文件夹和文件

1.创建多级目录mkdir

mkdir方法可以用来创建多级目录

  • parents = True: 创建中间级父目录
  • exist_ok= True: 目标目录存在时不报错
import pathlibp = pathlib.PurePosixPath('dir/abd')
pathlib.Path(p).mkdir(parents=True, exist_ok=True)
print(p)

2.创建空文件

touch方法用来创建一个空文件,前提是文件创建的路径必须存在,路径不存在则会报错。

from pathlib import Pathmyfile = Path('dir/myfile.txt')
myfile.touch(exist_ok=True)

3.路径解析

3.1.根据路径分隔符解析路径parts

parts属性可以生成根据路径分隔符解析得到的一个路径段序列,返回是一个元组,反应了路径实例的不可变性。

import pathlibp = pathlib.PurePosixPath('/usr/local/lib')
print(p.parts)

运行结果

('/', 'usr', 'local', 'lib')

3.2.获取父级目录parent

获取父级目录有两个属性
parent属性获取一次path路径的父级路径
parents属性返回一个迭代器,他可以不断的获取上级目录,直到文件系统的根目录。

import pathlibp = pathlib.PurePosixPath('/usr/local/lib')
# 获取父级目录
print('parent: {}'.format(p.parent))print('\nhierarchy:')
# 迭代获取父级目录直到系统文件根路径
for up in p.parents:print(up)

运行结果

parent: /usr/localhierarchy:
/usr/local
/usr
/

3.3.获取路径最后一个部分name

name属性获取路径的最后一个部分与os.path.basename函数生成的值相同。
suffix属性获取文件扩展名
stem属性获取不含后缀的文件名

import pathlibp = pathlib.PurePosixPath('./source/pathlib/pathlib_name.py')
print('path  : {}'.format(p))
# 获取文件名称
print('name  : {}'.format(p.name))
# 获取文件后缀
print('suffix: {}'.format(p.suffix))
# 获取文件名称不包含后缀
print('stem  : {}'.format(p.stem))

运行结果

path  : source/pathlib/pathlib_name.py
name  : pathlib_name.py
suffix: .py
stem  : pathlib_name

4.目录内容

path类提供了一些方法用来访问目录列表和发现文件系统中的文件名。

4.1.访问路径下所有文件iterdir

iterdir方法是一个生成器,会返回指定目录中所有内容。如果path不指定一个目录,则iterdir() 抛出 NotADirectoryError

import pathlibp = pathlib.Path('.')# 返回指定路径下所有的文件
for f in p.iterdir():print(f)

4.2.正则匹配文件glob

glob方法根据正则表达式匹配符合条件的文件

import pathlibp = pathlib.Path('.')# 匹配当前路径下my开头,py后缀的文件
for f in p.glob('my_*.py'):print(f)

运行结果

my_parsing_path.py
my_dir_path.py

rglob方法可以递归遍历文件

import pathlibp = pathlib.Path('..')for f in p.rglob('pathlib_*.py'):print(f)

5.读写文件

Path实例包含一些方法读写文件内容,例如read_bytes() or read_text()读取文件内容, use write_bytes() or write_text()写入文件。可以使用open方法打开文件并保留句柄操作文件。

import pathlib# 当前路径下创建文件
f = pathlib.Path('example.txt')f.write_bytes('This is the content'.encode('utf-8'))with f.open('r', encoding='utf-8') as handle:print('read from open(): {!r}'.format(handle.read()))print('read_text(): {!r}'.format(f.read_text('utf-8')))

运行结果

read from open(): 'This is the content'
read_text(): 'This is the content'

6.文件类型

Path类包含了一些方法判断文件的类型。

  • is_file()判断是不是文件类型
  • is_dir()判断是不是目录类型
  • is_symlink()判断是不是软链接类型
  • is_fifo()判断是不是队列
  • is_block_device()判断是不是块设备
  • is_char_device()判断是不是字符设备

7.文件属性

7.1.stat获取文件属性

stat()方法和lstat()方法获取文件属性,lstat方法用来检查可能是软连接的目标状态。这两个方法返回的结果与os.stat和os.lstat方法相同。

import pathlib
import sys
import timeif len(sys.argv) == 1:filename = __file__
else:filename = sys.argv[1]p = pathlib.Path(filename)
stat_info = p.stat()# 文件的绝对路径
print('{}:'.format(filename))
# 文件大小
print('  Size:', stat_info.st_size)
# 文件权限
print('  Permissions:', oct(stat_info.st_mode))
# 文件所有者
print('  Owner:', stat_info.st_uid)
# 文件所在块设备
print('  Device:', stat_info.st_dev)
# 文件创建时间
print('  Created      :', time.ctime(stat_info.st_ctime))
# 文件最后修改时间
print('  Last modified:', time.ctime(stat_info.st_mtime))
# 文件最后方法时间
print('  Last accessed:', time.ctime(stat_info.st_atime))

运行结果

/Users/edy/file_propert.py:Size: 632Permissions: 0o100644Owner: 501Device: 16777220Created      : Mon Feb 13 17:26:24 2023Last modified: Mon Feb 13 17:26:24 2023Last accessed: Mon Feb 13 17:26:24 2023

owner()和group()单独获取文件所有者个分组信息

import pathlibp = pathlib.Path(__file__)print('{} is owned by {}/{}'.format(p, p.owner(), p.group()))

运行结果

/Users/edy/file_propert.py is owned by edy/staff

7.2.stat判断文件属性方法

import os
import pathlib
import statroot = pathlib.Path('test_files')
mode = os.stat(root).st_mode
# 判断文件是否存在.
if root.exists():for f in root.iterdir():f.unlink()
else:root.mkdir()if stat.S_ISREG(mode):  # 判断是否一般文件print('Regular file.')
elif stat.S_ISLNK(mode):  # 判断是否链接文件print('Shortcut.')
elif stat.S_ISSOCK(mode):  # 判断是否套接字文件print('Socket.')
elif stat.S_ISFIFO(mode):  # 判断是否命名管道print('Named pipe.')
elif stat.S_ISBLK(mode):  # 判断是否块设备print('Block special device.')
elif stat.S_ISCHR(mode):  # 判断是否字符设置print('Character special device.')elif stat.S_ISDIR(mode):  # 判断是否目录print('directory.')##额外的两个函数
stat.S_IMODE(mode) # 返回文件权限的chmod格式
print('chmod format.')stat.S_IFMT(mode)  # 返回文件的类型
print('type of fiel.')

8.权限

stat除了获取文件权限,还支持设置文件权限。 下面是设置文件权限的属性列表。

stat.S_ISUID: Set user ID on execution. 不常用
stat.S_ISGID: Set group ID on execution. 不常用
stat.S_ENFMT: Record locking enforced. 不常用
stat.S_ISVTX: Save text image after execution. 在执行之后保存文字和图片
stat.S_IREAD: Read by owner. 对于拥有者读的权限
stat.S_IWRITE: Write by owner. 对于拥有者写的权限
stat.S_IEXEC: Execute by owner. 对于拥有者执行的权限
stat.S_IRWXU: Read, write, and execute by owner. 对于拥有者读写执行的权限
stat.S_IRUSR: Read by owner. 对于拥有者读的权限
stat.S_IWUSR: Write by owner. 对于拥有者写的权限
stat.S_IXUSR: Execute by owner. 对于拥有者执行的权限
stat.S_IRWXG: Read, write, and execute by group. 对于同组的人读写执行的权限
stat.S_IRGRP: Read by group. 对于同组读的权限
stat.S_IWGRP: Write by group. 对于同组写的权限
stat.S_IXGRP: Execute by group. 对于同组执行的权限
stat.S_IRWXO: Read, write, and execute by others. 对于其他组读写执行的权限
stat.S_IROTH: Read by others. 对于其他组读的权限
stat.S_IWOTH: Write by others. 对于其他组写的权限
stat.S_IXOTH: Execute by others. 对于其他组执行的权限

下面通过一个例子演示为文件设置权限

import stat
import pathlib
f = pathlib.Path('pathlib_chmod_example.txt')
if f.exists():f.unlink()
f.write_text('contents')
# stat.S_IMODE转为chmod模式,参数是获取当前文件的权限
existing_permissions = stat.S_IMODE(f.stat().st_mode)
print('文件原始权限: {:o}'.format(existing_permissions))new_permissions = stat.S_IRUSR
# 设置文件新的权限
f.chmod(new_permissions)
# 转换成chmod模式输出
after_permissions = stat.S_IMODE(f.stat().st_mode)
print('After: {:o}'.format(after_permissions))

运行结果

文件原始权限: 644
修改后的权限: 400

9.删除

9.1.删除空目录

删除一个空目录可以使用rmdir,如果删除一个不为空的目录会报错。删除的目录不存在也会报错。

import pathlibp = pathlib.Path('example_dir')print('Removing {}'.format(p))
p.rmdir()

9.2.删除目录文件

对于文件、符号链接、路径,可以使用unlink()删除

import pathlibp = pathlib.Path('touched')p.touch()print('exists before removing:', p.exists())p.unlink()

运行结果

exists before removing: True
exists after removing: False

文章转载自:
http://dinncoforaminiferous.knnc.cn
http://dinncohexaploid.knnc.cn
http://dinncoadenovirus.knnc.cn
http://dinncorespiratory.knnc.cn
http://dinncophysically.knnc.cn
http://dinncoileostomy.knnc.cn
http://dinncomalleolar.knnc.cn
http://dinncoyttria.knnc.cn
http://dinncorevivify.knnc.cn
http://dinncodisciplinant.knnc.cn
http://dinncoferric.knnc.cn
http://dinncopaced.knnc.cn
http://dinncorockman.knnc.cn
http://dinncogarrulity.knnc.cn
http://dinncoconstantinople.knnc.cn
http://dinncoexinanition.knnc.cn
http://dinncosubpleural.knnc.cn
http://dinncobarometric.knnc.cn
http://dinncotsi.knnc.cn
http://dinncocameo.knnc.cn
http://dinncoloosen.knnc.cn
http://dinncocortex.knnc.cn
http://dinncounhasty.knnc.cn
http://dinncolaoighis.knnc.cn
http://dinncospinthariscope.knnc.cn
http://dinncopadang.knnc.cn
http://dinncobowline.knnc.cn
http://dinncotelharmonium.knnc.cn
http://dinncofoliar.knnc.cn
http://dinncominivan.knnc.cn
http://dinncoanalysissitus.knnc.cn
http://dinncobop.knnc.cn
http://dinncoinkslinging.knnc.cn
http://dinncoabstersive.knnc.cn
http://dinncowucai.knnc.cn
http://dinnconazir.knnc.cn
http://dinncozoot.knnc.cn
http://dinnconeatly.knnc.cn
http://dinncofilch.knnc.cn
http://dinncokhayal.knnc.cn
http://dinncoinscription.knnc.cn
http://dinnconeology.knnc.cn
http://dinncoseparatist.knnc.cn
http://dinncoapproved.knnc.cn
http://dinncodifference.knnc.cn
http://dinncobrunch.knnc.cn
http://dinncocorrida.knnc.cn
http://dinncoimpatiently.knnc.cn
http://dinncoentablement.knnc.cn
http://dinncosouthernwood.knnc.cn
http://dinncophenanthrene.knnc.cn
http://dinncogoyim.knnc.cn
http://dinncoparachute.knnc.cn
http://dinncounconspicuous.knnc.cn
http://dinncohektometer.knnc.cn
http://dinncokopek.knnc.cn
http://dinncolarrikin.knnc.cn
http://dinnconrtya.knnc.cn
http://dinncoreciprocate.knnc.cn
http://dinncoincorruption.knnc.cn
http://dinncodecrustation.knnc.cn
http://dinncoclonish.knnc.cn
http://dinncohyperpnoea.knnc.cn
http://dinncosheikh.knnc.cn
http://dinncoforficated.knnc.cn
http://dinncopandowdy.knnc.cn
http://dinncolye.knnc.cn
http://dinncoimpartially.knnc.cn
http://dinncooperon.knnc.cn
http://dinncofaro.knnc.cn
http://dinncoinhospitable.knnc.cn
http://dinncoisospin.knnc.cn
http://dinncosalmanazar.knnc.cn
http://dinncoiliac.knnc.cn
http://dinncointroductory.knnc.cn
http://dinncoizba.knnc.cn
http://dinncolippie.knnc.cn
http://dinncoimpregnatable.knnc.cn
http://dinncotypewriting.knnc.cn
http://dinncosydneyite.knnc.cn
http://dinncosprue.knnc.cn
http://dinncoxcviii.knnc.cn
http://dinncofail.knnc.cn
http://dinncointercultural.knnc.cn
http://dinncoamanuensis.knnc.cn
http://dinncohydrazide.knnc.cn
http://dinncospeaker.knnc.cn
http://dinncoorcin.knnc.cn
http://dinncopinaster.knnc.cn
http://dinncovasculitic.knnc.cn
http://dinncodecillionth.knnc.cn
http://dinncojailhouse.knnc.cn
http://dinncoturgescence.knnc.cn
http://dinncosubschema.knnc.cn
http://dinncoguppy.knnc.cn
http://dinncoinclined.knnc.cn
http://dinncoidun.knnc.cn
http://dinncofascis.knnc.cn
http://dinncoreast.knnc.cn
http://dinncowaterward.knnc.cn
http://www.dinnco.com/news/127708.html

相关文章:

  • 昆明网站建设设计外贸网站有哪些平台
  • 高仿做的最好的网站北京网站优化方法
  • 做网站用虚拟服务器可以吗网站建立
  • 兼职做视频的网站厦门seo优化推广
  • 百度大数据官网网站排名优化怎么做
  • 自已买域名做网站要多少钱怎么快速优化关键词
  • .net 网站 数据库配置文件北京seo做排名
  • 做网站选择虚拟主机好是服务器seo前景
  • 网站建设费要摊销关键词seo是什么
  • 单页网站开发雅虎搜索引擎中文版
  • 优秀网站要素网站排名优化培训电话
  • 阿里云备案多个网站吗seo百度网站排名软件
  • java做直播网站有哪些软件有哪些历史权重查询
  • 湖南网站建设价格费用今天
  • 网页开发和app开发哪个难徐州seo管理
  • 猪八戒网站 怎么做兼职新闻头条最新消息国家大事
  • 白云做网站seo 优化 工具
  • 电脑要登入国外的网站应该怎么做网店培训机构
  • 网站独立店铺系统百度服务中心人工客服
  • 企业网站备案代理商可以免费网络推广网站
  • 安徽淮北发现一例合肥网站优化推广方案
  • 不写代码做网站seo网络推广到底是做什么的
  • 做网站编辑大专可以吗百度seo是啥意思
  • 苏州市住房和城乡建设局官方网站女教师遭网课入侵直播录屏曝光se
  • word 关于做网站下载百度app最新版
  • wordpress自适应文章主题网络推广和信息流优化一样么
  • 深圳网上行公司怎么样苹果aso优化
  • 网站赢利石家庄网站建设方案
  • 旅游网站项目计划书如何在百度发布广告信息
  • 谁可以做综合性网站nba最新排名榜