疯狂python讲义学习日志10——文件IO

对于软件开发而言,IO操作是必不可少的。python提供了非常丰富的I/O支持,它既提供了pathlib和os.path来操作各种路径,也提供了全局的open()函数来打开文件——在打开文件之后,程序既可以读取文件的内容,也可以向文件输出内容。在这一章,小编就跟大家分享下如何在python进行各种IO操作。

1 使用pathlib模块操作目录

pathlib模块提供了一组面向对象的类,这些类可代表各种操作系统上的路径,程序可通过这些类操作路径。
疯狂python讲义学习日志10——文件IO
1、PurePath:代表并不访问实际文件系统的“纯路径”。简单来说,PurePath只是负责对路径字符串执行操作,至于该字符串是否对应实际的路径,它并不关系。PurePath有两个子类,PurePosixPath和PureWindowsPath,分别代表UNIX风格的路径和windows风格的路径。
2、Unix风格的路径和Windows风格的路径主要的区别在于根路径和路径分隔符:UNIX风格的路径根路径是斜杠(/),而Windows风格的路径根路径是盘符(c:);Unix风格的路径的分隔符是斜杠(/),而Windows风格的路径的分隔符是反斜杠(\)。
3、Path:代表访问实际文件系统的“真正路径”。Path对象可用于判断对应的文件是否存在、是否为文件、是否为目录等。Path同样有两个子类,即PosixPath和WindowsPath。

1.1 PurePath的基本功能

1、程序在创建purepath和path时,既可传入单个路径字符串,也可传入多个路径字符串,purepath会将他们拼成一个字符串。

from pathlib import *
#创建purepath
pp = PurePath('setup.py')
print(type(pp))
pp = PurePath('crazyit','some/path','info')
#输出windows风格的路径
print(pp)
pp = PurePath(Path('crayzit'),Path('info'))
#输出windows风格的字符串
print(pp)
pp = PurePosixPath('crazyit','some/path','info')
#看到输出unix风格的路径
print(pp)
#------以下为程序的输出------------
<class 'pathlib.PureWindowsPath'>
crazyit\some\path\info
crayzit\info
crazyit/some/path/info

2、在创建purepath时不传入任何参数,系统默认创建代表当前路径的purepath,相当于传入点号(.代表当前路径)作为参数。
3、在创建purepath时如果传入的参数包含多个根路径,则只有最后一个根路径及后面的子路径生效。

from pathlib import *
pp = PurePosixPath('/etc','/user','lib64')
print(pp)
pp = PureWindowsPath('c:/Windows','d:info')
print(pp)
#---------以下为输出-----------
/user/lib64
d:info

4、如果在创建purepath时传入的路径字符串中包含多余的斜杠和点号,系统会直接忽略它们。但不会忽略两点,因为两点在路径中有实际意义。
5、PurePath对象支持各种比较运算符,它们通过比较路径字符串比较大小。
6、purepath对象支持斜杠(/)作为运算符,该运算符的作用是将多个路径连接起来。

上一篇:字符串char


下一篇:python-谁是卧底小游戏