当前位置:   article > 正文

Python read + write + with 简记_python with write

python with write

 Base

  1. # -*- coding:utf8 -*-
  2. """
  3. # editor: hjjdreamer
  4. # create-time: 2023/4/13-7:04
  5. # Python-Script: 30_files_py.py
  6. # describe:
  7. Python 需要经过文件管家的一个介质进行系统中文件的读取
  8. Python --> 文件管家的媒介 --> 系统文件
  9. mode:
  10. r == 读取,不存在文件则报错
  11. a == 追加内容
  12. w == 覆盖写入
  13. b == 二进制模式打开(图片 + 视频)
  14. """
  15. """
  16. open 读取文件(打开)
  17. """
  18. # 读取文件(打开)
  19. # open(文件的路径, mode="<打开方式: r读取 + w覆盖写入 + a追加>")
  20. # file_object 相当于媒介一个文件管家
  21. fr = open(r"./demo.log", mode="r")
  22. # 文件操作
  23. """
  24. read() 查看文件的功能
  25. 按字符,文件指针从头读到尾
  26. """
  27. # 读取文件中前5个字符并输出
  28. print(fr.read(5))
  29. # 不会从头接着读,而是接着往后读取
  30. print(fr.read(3))
  31. # 文件指针标记文件从哪个位置开始读取数据
  32. # fr.read() 读取所有内容(当前指针位置到文件末尾)
  33. print(fr.read())
  34. # 关闭资源
  35. fr.close()
  36. """
  37. # readline()按行读取文件
  38. """
  39. # 打开文件:
  40. frl = open(r"./myapp.log", mode="r")
  41. # 按行读取文件
  42. print(frl.readline()) # 读取第一行数据
  43. # 文件中有换行符(\n) + print默认也是换行符
  44. print(frl.readline(), end="") # 读取第二行数据
  45. # 修改print的默认换行符
  46. print(frl.readline(), end="")
  47. # 关闭文件
  48. frl.close()
  49. """
  50. readlines()
  51. 读取所有(剩余)行然后把他们作为一个 “字符串列表” 返回
  52. 和 while, for 循环结合使用
  53. 按行,文件指针从头读到尾
  54. """
  55. # 打开文件
  56. fr1 = open(r"./myapp.log", mode="r")
  57. data1 = fr1.readlines()
  58. print(f"{data1}")
  59. print(f"{data1[0]}")
  60. print(f"{data1[2]}")
  61. # 和 split()结合
  62. print(f"{data1[1].split(':')[0]}")
  63. print(f"{data1[1].split(':')[2]}")
  64. # 和 for 循环
  65. for item in data1:
  66. print("===")
  67. print(f"num: {item}", end="")
  68. print("-=-=-=-")
  69. print("num: ", item, end="")
  70. print("----")
  71. print(f"{fr1.readlines()}")
  72. # 关闭文件
  73. fr1.close()
  74. """
  75. 大批量数据的读取方法
  76. """
  77. # 打开文件
  78. frm = open(r"./addDemo.log", mode="r")
  79. # 读取文件 == while True
  80. """
  81. 123
  82. 456
  83. "\n" ==> 换行符,不会终止循环 ==> len("\n")=1
  84. 789
  85. """
  86. while True:
  87. # 一行一行接受数据
  88. data = frm.readline()
  89. # 表示读取那一行为空字符,则标记着文件读取完成
  90. # len() 返回字符串的长度
  91. if len(data) == 0: # 表示文件读取完毕
  92. break # 退出循环
  93. # 输出行
  94. print(f"data = {data}")
  95. # 关闭资源
  96. frm.close()
  97. """
  98. 数据的写入
  99. write
  100. writelines
  101. """
  102. # 打开文件
  103. fw = open(r"./write_file.txt", mode="w") # w: write 写入
  104. # 文件写入,字符串写入,覆盖写入
  105. fw.write("hello benben~~\n")
  106. fw.write("you are my baby boy~ ~\n")
  107. # 关闭资源
  108. fw.close()
  109. """
  110. 写入操作按列
  111. """
  112. # 列表写入 + 换行符要写,否则会写成一行
  113. list01 = ["hello\n", "world\n", "hehe\n"]
  114. # 打开文件
  115. fwl = open("./writelines_file.txt", mode="w")
  116. # 写入文件,覆盖写入
  117. fwl.writelines(list01)
  118. # 保存
  119. fwl.close()
  120. """
  121. 案例
  122. mode="rb"
  123. mode="ab"
  124. """
  125. # 同时打开2个文件系统
  126. fr1 = open(r"./write_file.txt", mode="rb")
  127. fw1 = open(r"./writelines_file.txt", mode="ab")
  128. # 循环判断写入,按字节模式而不是内容
  129. while True:
  130. data = fr1.read(4096) # 4KB为一次写入
  131. # 读取完成的判断
  132. if len(data) == 0: # 文件读取完毕
  133. break # 退出循环
  134. # 写入数据
  135. fw1.write(data)
  136. fw1.close()
  137. fr1.close()
  138. # 文件简写
  139. """
  140. with 的简写 ==> 优化掉close()操作,简化了写法
  141. """
  142. # 打开的文件放到with语句中,代码结束后,文件将自动关闭
  143. with open(r"./writelines_file.txt", mode="ab") as fw2:
  144. with open(r"./write_file.txt", mode="rb") as fr2:
  145. while True:
  146. data2 = fr2.read(4096)
  147. if len(data2) == 0:
  148. break
  149. fw2.write(data2)

def func + sys module结合

  1. # 与函数定义结合
  2. def copy1(from1, to1):
  3. print(f"from1 = {from1}")
  4. print(f"to1 = {to1}")
  5. with open(f"{to1}", mode="ab") as fw3:
  6. with open(f"{from1}", mode="rb") as fr3:
  7. while True:
  8. data3 = fr3.read(4096)
  9. if len(data3) == 0:
  10. break
  11. fw3.write(data3)
  12. copy1(f"./writelines_file.txt", f"./write_file.txt")
  13. import sys
  14. copy1(sys.argv[1], sys.argv[2]) # 调用函数+使用sys module 传递系统变量

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/183110
推荐阅读
相关标签
  

闽ICP备14008679号