1. ###文件
  2. '''
  3. 1. 什麽是文件
  4.     文件是操作系統為用戶/应用程序提供一種操作硬盤的虚拟单位
  5. 2. 爲何要用文件
  6.     为了存取硬盘数据
  7. 3. 如何用文件
  8. #1. 打開文件
  9. #2. 读写文件
  10. #3. 关闭文件##回收操作系统资源
  11. '''
  12. # f=open(r'C:\Users\DELL\Desktop\a.txt',mode='r',encoding='utf-8')
  13. # #打开一个文件,后面跟文件的地址,mode等于r表示只读方式,
  14. # #小写的r表示后面的字符串没有特别的含义
  15. # data=f.read()
  16. # print(data)
  17. # print(f)
  18. # f.close() # 回收操作系統資源
  19.  
  20. # with open('a.txt',mode='r',encoding='utf-8') as f1,\
  21. #         open('b.txt',mode='r',encoding='utf-8') as f2:
  22. #     ####以后打开文件用这种格式
  23. #     print(f1.read())
  24. #     print(f2.read())
  1. #文件的打开模式
  2. #一:介紹
  3. #控制文件操作方法的模式:
  4. #r:只读模式(默认的)
  5. #w:只写模式
  6. #a:只追加写(只能在最后面加 不能在前面或者中间写)
  7.  
  8.  
  9. #r:只读模式,当文件存在时文件指針在文件開頭,当文件不存在時會报错
  10. # with open('szp.txt',mode='rt',encoding='utf-8') as f:
  11. #     print(f.readable())
  12. #     data=f.read()
  13. #     print(data)
  14. #     print(f.writable())
  15. #     f.write('xxxxx')
  16. #
  17. #     res1=f.read()
  18. #     print('first: ',res1)
  19. #
  20. #     print(f.readline())
  21. #     print(f.readline())
  22.  
  23. # l=[]
  24. # for line in f:
  25. #     # print(line)
  26. #     l.append(line)
  27. # print(l)
  28.  
  29. # lines=f.readlines()
  30. # print(lines)
  31.  
  32. # with open('aaa.txt', mode='rt', encoding='utf-8') as f:
  33. #     res2 = f.read()
  34. #     print('second: ', res2)
  35.  
  36. #w:只写模式,当文件存在時将文件清空文件指针在文件开头,儅文件不存在時會创建空文档
  37. # with open('SZP123.txt', mode='wt', encoding='utf-8') as f:
  38. #     print(f.readable())
  39. #     print(f.writable())
  40. #     # f.read()
  41. # #
  42. # #     # 强调:在文件打开了没有关闭的情况下连续写入,新写入的内容总是紧跟在前一段内容之后
  43. #     f.write('你好啊哈哈哈\n')
  44. #     f.write('大家好哈哈哈')
  45. #     f.write('1111\n2222\n333\n')
  46.  
  47. #a:只追写模式,当文件存在時文件指针直接跳到文件末尾,儅文件不存在時會创建空文档
  48. # with open('b.txt',mode='at',encoding='utf-8') as f:
  49. #     # print(f.readable())
  50. #     # print(f.writable())
  51. #
  52. ## 注意:与w模式的异同:
  53. ##相同点:在文件打开了没有关闭的情况下,连续的写入,新写入的内容总是紧跟在前一段内容之后
  54. ##不同点:w模式在文件关闭又重新打开的情况下,文件会被清空,文件指针跑到文件开头,而a模式无
  55. # 论何时打开文件,文件指针总是直接跳到文件末尾
  56. #所以一般用a模式比较好,也就是mode=at 这样可以之前写的内容不会被清除
  57.  
  58.  
  59. #在b下rwa的使用
  60. # with open('SZP123.txt',mode='rb') as f:
  61. #     data=f.read()
  62. #     print(data,type(data))
  63. ####在模式b下也可以读取一张图片,不过前提是要这张图片存在这个路径下面,如果不存在会报错,
  64. #之前的那个模式一个文件如果存在会被清空,不存在会自动创建一个新的空文件
  65. # with open('123.jpg',mode='rb') as f:
  66. #     data=f.read()
  67. #     print(data,type(data))
  68.  
  69. # with open('e.txt',mode='wb') as f:
  70. #     f.write('你好啊  我叫孙志平 来自同济大学\n'.encode('utf-8'))
  71. #以上这个模式每次运行的结果都次运行都会覆盖掉前面一次运行的结果
  72.  
  73. # with open('e.txt',mode='ab') as f:
  74. #     f.write('我好啊\n'.encode('utf-8'))
  75.  
  76. #控制文件操作内容格式的模式:(不能单独使用,必須跟r\w\a連用)
  77. #t(默認的):无论读写都是以字符串str为單位的,只能用于文本文件,并且必須指定encoding參數
  78. #b:无论读写都是以二進制bytes為單位的,適用於所有文件,一定不能指定encoding參數
  79.  
  80.  
  81. #二:示範
  82. # f=open('123.jpg',mode='rt',encoding='utf-8')
  83. # data=f.read()
  84. # # print(data,type(data))
  85. # f.close()
  86.  
  87.  
  88. # f=open('a.txt',mode='rb')
  89. # data=f.read()
  90. # # print(data,type(data))
  91. # print(data.decode('utf-8'))
  92. # f.close()
  93.  
  94. # 小练习
  95. # src_file=input('请输入源文件路径: ').strip() #src_file='D:\周末三期\day04\123.jpg'
  96. # dst_file=input('请输入目标文件路径: ').strip()
  97. # with open(r'%s' %src_file,mode='rb') as f1,open(r'%s' %dst_file,mode='wb') as f2:
  98. #     # data=f1.read()
  99. #     # f2.write(data)
  100. #
  101. #     for line in f1:
  102. #         # print(line)
  103. #         f2.write(line)
  104.  
  105.  
  106. # 了解:+
  107. # with open('e.txt',mode='r+t',encoding='utf-8') as f:
  108. #     print(f.readable())
  109. #     print(f.writable())
  110. #     # print(f.read())
  111. #     f.write('1111')
  1. #文件内指针的移动
  2.  
  3.  
  4. #只有t模式下的read(n)中n代表读取的字符个数,除此外文件内指针的移动都是以bytes为单位
  5. # with open('e.txt',mode='rt',encoding='utf-8') as f:
  6. #     data=f.read(4)
  7. #     print(data)
  8.  
  9. # with open('e.txt',mode='rb') as f:
  10. #     data=f.read(6)
  11. #     print(data.decode('utf-8'))
  12.  
  13. # with open('e.txt',mode='r+',encoding='utf-8') as f:
  14. #     f.truncate(3)
  15.  
  16. # 主动控制文件内指针的移动
  17. #f.seek(参数1,参数2)
  18. #参数1: 控制的移动的字节个数
  19. #参数2: 控制参照的位置
  20. #       0(默认的):参照文件开头
  21. #       1:参照指针当前所在位置
  22. #       2:参照指针文件末尾
  23. #       强调:只有0模式可以在t下使用,1和2模式只能在b模式下使用
  24.  
  25. # with open('e.txt',mode='rt',encoding='utf-8') as f:
  26. #     a=f.seek(3,0)###第一个参数表示开始的位置,
  27. #     print(a)
  28. #     print(f.read())
  29.  
  30. # with open('e.txt',mode='rb') as f:
  31. #     # f.seek(6,0)
  32. #     # f.read(3)
  33. #     # f.seek(3,1)
  34. #     # print(f.tell())
  35. #     # print(f.read().decode('utf-8'))
  36. #
  37. #     # f.seek(-8,2)
  38. #     # print(f.read().decode('utf-8'))
  39. #
  40. #     f.seek(0,2)
  41. #     print(f.tell())
  42.  
  43. #小练习:tail -f access.log
  44. # with open('access.log','rb') as f:
  45. #     f.seek(0,2)
  46. #     while True:
  47. #         line=f.readline()
  48. #         if len(line) == 0:
  49. #             #没有值
  50. #             pass
  51. #         else:
  52. #             print(line.decode('utf-8'),end='')
  1. #文件修改的两种方式:
  2. #结论:硬盘空间都是用新内容覆盖旧内容,不可更改,而内存空间是可以修改的
  3. #之前的操作都是直接覆盖原文件,这个可以在原文件的基础上进行修改
  4. # with open('e.txt',mode='r+t',encoding='utf-8') as f:
  5. #     f.seek(3,0)
  6. #     f.write('111111111111')
  7.  
  8. # 文件修改的方式一:
  9. # 思路:
  10. # 1. 将文件内容全部读入内存
  11. # 2. 在内存中完成修改
  12. # 3. 将修改的结果写回原文件
  13. # 优点:在文件修改期间硬盘上就一份数据
  14. # 缺点:会过多地占用内存
  15. # with open('e.txt',mode='rt',encoding='utf-8') as f:
  16. #     data=f.read()
  17. #     data=data.replace('alex','dsb')
  18. #
  19. # with open('e.txt',mode='wt',encoding='utf-8') as f:
  20. #     f.write(data)
  21.  
  22. # 文件修改的方式二:
  23. # 思路:
  24. # 1. 以读的方式打开源文件,以写的方式打开一个临时文件
  25. # 2. 从源文件中读取一行内容,修改完后再写入临时文件,循环往复直到源文件全部读完
  26. # 3. 删掉源文件,将临时文件重命名为源文件名
  27. # 优点:不会过多地占用内存
  28. # 缺点:在文件修改期间硬盘会同时存在两份数据
  29.  
  30. # import os
  31. # with open('e.txt',mode='rt',encoding='utf-8') as read_f,\
  32. #         open('.e.txt.swap',mode='wt',encoding='utf-8') as write_f:
  33. #     for line in read_f:
  34. #         write_f.write(line.replace('dsb','alex'))
  35. #
  36. # os.remove('e.txt')
  37. # os.rename('.e.txt.swap','e.txt')

Python记录4:文件操作的更多相关文章

  1. Python入门篇-文件操作

    Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...

  2. python os&shutil 文件操作

    python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...

  3. python 历险记(三)— python 的常用文件操作

    目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...

  4. Python的高级文件操作(shutil模块)

    Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...

  5. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  6. Python之常用文件操作

    Python之常用文件操作

  7. python(1) -文件操作

    很多时候我们需要对文件进行一些操作,比如读取并分析日志文件,写入日志文件等等.显然python也内置了对文件进行操作的函数. 读文件: >>> f = open('a.log','r ...

  8. Python开发【第三篇】:Python基本之文件操作

    Python基本之文本操作 一.初识文本的基本操作 在python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open ...

  9. python基础之文件操作

    对于文件操作中最简单的操作就是使用print函数将文件输出到屏幕中,但是这种操作并不能是文件保存到磁盘中去,如果下调用该数据还的重新输入等. 而在python中提供了必要的函数和方法进行默认情况下的文 ...

  10. 关于Python中的文件操作(转)

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

随机推荐

  1. 存储空间消耗磁盘比较 int varchar date

    小结: 1.日期类型按照date存储节省空间,仅3字节,而按照字符串型char 8字节 20190316 ,  varchar  20190316 9字节: 2.对于小于32768的整数,按照smal ...

  2. PHP 正则表达式---匹配模式

    1.PHP 正则表达式 正则表达式贪婪匹配,非贪婪匹配. 默认是贪婪匹配, 例如 ①.贪婪匹配, $str = ' 香肠 月饼 '; preg_match('/ (.)</td>/',$s ...

  3. [development][PCRE] old PCRE

    介绍, man手册 txt版 http://www.pcre.org/original/pcre.txt html版 http://www.pcre.org/original/doc/html/pcr ...

  4. 50 行代码教你爬取猫眼电影 TOP100 榜所有信息

    对于Python初学者来说,爬虫技能是应该是最好入门,也是最能够有让自己有成就感的,今天,恋习Python的手把手系列,手把手教你入门Python爬虫,爬取猫眼电影TOP100榜信息,将涉及到基础爬虫 ...

  5. 20165336 实验三 敏捷开发与XP实践

    20165336 实验三 敏捷开发与XP实践 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:康志强 学号:20165336 指导教师:娄嘉鹏 实验日期:2018年4月28日 实验时 ...

  6. linux测试环境维护之磁盘空间维护

    常见需要定期清理的日志有: 清理oracle监听日志: 1.进入/opt/oracle/db/diag/tnslsnr/sels-186/listener/alert目录下, 执行命令: rm -rf ...

  7. 关于eclipse调试时程序控制台不能自动打开

      对于这个程序,在刚开始的时候,没有敲上22,29,33行的打印语句时,在调试的时候不会自动弹开控制台,所以一直在怀疑代码可能出错了.因此可以自己手动打开,但是如果敲上那些代码,系统可以自动弹开控制 ...

  8. Centos6.5+Redmine

    花了两天时间,基于centos6.5操作系统,搭建了redmine环境,在这里记录下过程中遇到的问题以及搭建流程. centos6.5; redmine2.5.0; Ruby1.9.3; step 1 ...

  9. linux常用文件

    /etc/redhat-release /etc/hostname /etc/ssh/sshd_config /proc/meminfo /etc/issue 查看系统版本号 /etc/rc.d/rc ...

  10. 自定义UIProgressView

    自定义CustomporgressView #import <UIKit/UIKit.h> @interface CustomporgressView : UIView @property ...