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

 

一、使用pathlib模块操作目录

 


  
  1. from pathlib import *
  2. # 创建PurePath,实际上使用PrueWindowsPath
  3. pp = PurePath('setup.py')
  4. print(type(pp))
  5. pp = PurePath('crazyit', 'some/path', 'info')
  6. # 看到windows风格的路径
  7. print(pp)
  8. # 看到windows风格的路径
  9. pp = PurePath(Path('crazyit'), Path('info'))
  10. print(pp)
  11. # 看到输出unix风格的路径
  12. pp = PurePosixPath('crazyit', 'some/path', 'info')
  13. print(pp)
  14. # 如果不传入参数,默认使用当前路径
  15. pp = PurePath()
  16. print(pp)
  17. # 如果传入的参数包含多个根路径,则只有最后一个根路径及后面的子路径生效
  18. pp = PurePosixPath('/etc', '/user', 'lib64')
  19. print(pp)
  20. pp = PurePosixPath('c:Windows', 'd:info')
  21. print(pp)
  22. pp = PurePosixPath('c:Windows','/Programme Files')
  23. print(pp)
  24. pp = PurePath('foo//bar')
  25. print(pp)
  26. pp = PurePath('foo/./bar')
  27. print(pp)
  28. pp = PurePath('foo/../bar')
  29. print(pp)
  30. """
  31. 输出内容:
  32. <class 'pathlib.PureWindowsPath'>
  33. crazyit\some\path\info
  34. crazyit\info
  35. crazyit/some/path/info
  36. .
  37. /user/lib64
  38. c:Windows/d:info
  39. /Programme Files
  40. foo\bar
  41. foo\bar
  42. foo\..\bar
  43. """

 

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


  
  1. #获取当前目录下的所有文件和子目录
  2. p=Path(".")
  3. for x in p.iterdir():
  4. print(x)
  5. #获取上级目录及其子目录下的.py文件
  6. p = Path('../')
  7. for x in p.glob('**/*.py'):
  8. print(x)
  9. #获取g:/publish/codes对应的目录
  10. p = Path('g:/publish/codes')
  11. for x in p.glob('**/Path_test1.py'):
  12. print(x)


  
  1. from pathlib import *
  2. p = Path('./load.py')
  3. result = p.write_text("""有一个美丽的世界他在远方等我
  4. """, encoding='UTF8')
  5. print(result) #返回输入到文件的字符的个数
  6. content = p.read_text(encoding='UTF8')
  7. print(content) #返回整个文件的内容,也就是刚刚输出的内容

二、使用os.path操作目录

 


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

 

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

 

 

四、打开文件

 

 

 

缓冲

 

 五、读取文件

 

 

 

六、写文件

 

 

 

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

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31905135/article/details/101014410

(完)