文件的操作

1. 文件操作
open 打开
f = open(文件路径, mode="模式", encoding="编码格式") 最最底层操作的就是bytes
打开一个文件的时候获取到的是一个文件句柄.即 : f为文件句柄. 执行操作后,记得关闭文件句柄 :   f.close()

绝对路径
从磁盘根目录开始寻找
相对路径
相对于当前程序所在的文件夹
../ 上一层文件
文件夹/ 进入xxx文件夹

2. mode:
 r: 读取,只读.
  读取文件的相关操作
  1. read()
  默认: 读取文件内容(全部)

f = open("开开.txt",mode = "r",encoding = "utf-8")
a = f.read()
f.close()
print(a)

  


  read(n) 读取n个字符

  2. readline() 读取一行
  3. readlines() 读取全部. 返回列表
  4* (最重要的)  for line in f:   每次读取一行内容  记得每一行的内容都有\n,所以读取的line应该去空白.  line.strip()


 w:
  写入. 只写
  创建文件
  会清空文件

  

  f.flush()  # 刷新管道, 因为数据写入文件句柄.
  f.close() # 关闭文件句柄.
f = open("开开.txt", mode="w", encoding="utf-8") # 可以帮我们创建文件

f.write('卢本伟牛逼\n')
f.write("克里斯关下门,别让他过来\n")
f.write('给阿姨倒一杯卡布奇诺\n')

# 好习惯
f.flush()  # 刷新管道, 把数据写入文件
f.close()

  


  a:
  也可以创建文件
  追加写 (光标从末尾开始)

  f.flush()  # 刷新管道, 因为数据写入文件句柄.
  f.close() # 关闭文件句柄.


  r+:

  对于文件而言. 应该有的操作就两个:读, 写
  读写操作
  w+:
  写读操作
  a+:
  追加写读

  所有带b的表示直接操作的是bytes, 当处理非文本文件的时候.
rb
wb

ab: 断点续传

r+b
w+b
a+b

3. 文件操作中关于文件句柄的相关操作
seek() 移动光标
f.seek(0) 移动到开头(最多)
f.seek(0, 2) 移动到末尾
seek:两个参数
1. 表示偏移量
2. 从xxx开始偏移, 默认0, 开头 1, 当前位置 2, 末尾

tell
返回光标所在的位置,pring(f.tell)   显示的值为光标所在的位置,且值是以字节为单位计算的(在"utf-8"里面,如果读取了1个汉字,值就是3. 如果读取了1个字母,值就是1)

4. 文件修改, 实际操作(重点)

# 需求: 把文本文档开开.txt中的"卢本伟"换成"UU"
# 必须:
#   1. 先从文件中读取内容
#   2. 把要修改的内容进行修改
#   3. 把修改好的内容写人一个新文件
#   4. 删除掉原来的文件
#   5. 把新文件重命名成原来的文件的名字

# 导入os模块  os表示操作系统
import os

f = open("开开.txt", mode="r", encoding="utf-8")
f2 = open("开开1.txt", mode="w", encoding="utf-8")

# with会自动的帮我们关闭文件的链接  (也可以用这种方法)
# with open("夸一夸alex", mode="r", encoding="utf-8") as f, \
#      open("夸一夸alex_副本", mode="w", encoding="utf-8") as f2:

for line in f:
    if "卢本伟" in line:
        line = line.replace("卢本伟", "UU")
    f2.write(line)
    
f.close()
f2.flush()
f2.close()

# 删除原来文件
os.remove("开开.txt")

# 重命名副本为原来的文件名
os.rename("开开1.txt", "开开.txt")

# time.sleep(3) # 程序暂停3秒.   (想看运算顺序时用这个)
                # (1)能看到文本文档是先添加一个开开1.txt 
                # (2)然后开开.txt会被删除
                # (3)最后开开1.txt会重命名为开开.txt  

  

posted on 2018-12-05 14:25  哎呀!土豆  阅读(125)  评论(0编辑  收藏  举报

导航