python【系列教程】之文件I/O

 

一、使用pathlib模块操作目录

 


from pathlib import *

# 创建PurePath,实际上使用PrueWindowsPath
pp = PurePath('setup.py')
print(type(pp))

pp = PurePath('crazyit', 'some/path', 'info')
# 看到windows风格的路径
print(pp)
# 看到windows风格的路径
pp = PurePath(Path('crazyit'), Path('info'))
print(pp)
# 看到输出unix风格的路径
pp = PurePosixPath('crazyit', 'some/path', 'info')
print(pp)
# 如果不传入参数,默认使用当前路径
pp = PurePath()
print(pp)
# 如果传入的参数包含多个根路径,则只有最后一个根路径及后面的子路径生效
pp = PurePosixPath('/etc', '/user', 'lib64')
print(pp)
pp = PurePosixPath('c:Windows', 'd:info')
print(pp)

pp = PurePosixPath('c:Windows','/Programme Files')
print(pp)

pp = PurePath('foo//bar')
print(pp)

pp = PurePath('foo/./bar')
print(pp)

pp = PurePath('foo/../bar')
print(pp)


"""
输出内容:
<class 'pathlib.PureWindowsPath'>
crazyit\some\path\info
crazyit\info
crazyit/some/path/info
.
/user/lib64
c:Windows/d:info
/Programme Files
foo\bar
foo\bar
foo\..\bar
"""


 

Path是 PurePath的子类,它除了支持PurePath的各种操作,属性和方法之外,还会真正的访问底层的文件系统,包括判断Path对应的路径是否存在,获取Path对应路径的各种属性,如是否只读,是文件还是文件夹等,甚至可以对文件进行读写。

#获取当前目录下的所有文件和子目录
p=Path(".")
for x in p.iterdir():
    print(x)
#获取上级目录及其子目录下的.py文件
p = Path('../')
for x in p.glob('**/*.py'):
    print(x)
#获取g:/publish/codes对应的目录
p = Path('g:/publish/codes')
for x in p.glob('**/Path_test1.py'):
    print(x)

from pathlib import *

p = Path('./load.py')
result = p.write_text("""有一个美丽的世界他在远方等我
""", encoding='UTF8')
print(result)  #返回输入到文件的字符的个数

content = p.read_text(encoding='UTF8')
print(content)  #返回整个文件的内容,也就是刚刚输出的内容

二、使用os.path操作目录

 

import  os
import time
#获取绝对路径
print(os.path.abspath('abc.txt'))
#获取共同前缀名
print(os.path.commonprefix(['/usr/lib','/usr/local/lib']))  #/usr/l
#获取共同路径
print(os.path.commonpath(['/usr/lib','/usr/local/lib'])) #\usr
#获取目录
print(os.path.dirname('abc/xyz/Redme.txt'))   #abc/xyz
#判断指定目录是否存在
print(os.path.exists('abc/xyz/Redme.txt')) #False
# 获取最近一次访问时间
print(time.ctime(os.path.getatime('os.path_test.py')))

 

三、使用fnmatch处理文件名匹配

 

 

四、打开文件

 

 

 

缓冲

 

 五、读取文件

 

 

 

六、写文件

 

 

 

七、os模块的文件和目录函数

 

 

 

 

 

 

 

 

 

 

八、使用tempfile模块生成临时文件和目录

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章