VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Python基础教程 >
  • python基础教程之python基础(10):文件操作(2)

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


")
  • for line in f:
  •   print(line.strip())
  • 注意: 读取完的⽂件句柄⼀定要关闭 f.close()
    回到顶部(go to top)

    3. 写模式(w,wb)

    写的时候注意,如果没有⽂件,则会创建⽂件,如果⽂件存在,则将原件中原来的内容删除,再
    写入新内容。
    
    
    1. f = open("⼩娃娃", mode="w", encoding="utf-8")
    2. f.write("⾦⽑狮王")
    3. f.flush() # 刷新. 养成好习惯
    4. f.close()
    尝试读⼀读
    
    
    1. f = open("⼩娃娃", mode="w", encoding="utf-8")
    2. f.write("⾦⽑狮王")
    3. f.read() # not readable 模式是w. 不可以执⾏读操作
    4. f.flush()
    5. f.close()
    wb模式下,可以不指定打开⽂件的编码,但是在写⽂件的时候必须将字符串转化成utf-8的
    bytes数据。
    
    
    1. f = open("⼩娃娃", mode="wb")
    2. f.write("⾦⽑狮王".encode("utf-8"))
    3. f.flush()
    4. f.close()
    回到顶部(go to top)

    4. 追加(a,ab)

    在追加模式下,我们写入的内容会追加在⽂件的结尾。
    
    
    1. f = open("⼩娃娃", mode="a", encoding="utf-8")
    2. f.write("麻花藤的最爱")
    3. f.flush()
    4. f.close()
    ab模式⾃⼰试⼀试就好了
    回到顶部(go to top)

    5. 读写模式(r+,r+b)

    对于读写模式,必须是先读,因为默认光标是在开头的,准备读取的。当读完了之后再进⾏
    写入,我们以后使⽤频率最⾼的模式就是r+。
    正确操作:
    
    
    1. f = open("⼩娃娃", mode="r+", encoding="utf-8")
    2. content = f.read()
    3. f.write("麻花藤的最爱")
    4. print(content)
    5. f.flush()
    6. f.close()
    7. 结果:
    8. 正常的读取之后, 写在结尾
    错误操作:
    
    
    1. f = open("⼩娃娃", mode="r+", encoding="utf-8")
    2. f.write("哈哈")
    3. content = f.read()
    4. print(content)
    5. f.flush()
    6. f.close()
    7.  
    8. 结果: 将开头的内容改写成了"哈哈", 然后读取的内容是后⾯的内容.
    所以记住: r+模式下,必须是先读取,然后再写入。
    回到顶部(go to top)

    6. 写读(w+,w+b)

    先将所有的内容清空,然后写入,最后读取,但是读取的内容是空的,不常⽤。
    
    
    1. f = open("⼩娃娃", mode="w+", encoding="utf-8")
    2. f.write("哈哈")
    3. content = f.read()
    4. print(content)
    5. f.flush()
    6. f.close()
    有⼈会说,先读不就好了么? 错。w+ 模式下,⼀开始读取不到数据,然后写的时候再将原来的内容清空,所以,很少⽤。
    回到顶部(go to top)

    7. 追加读(a+)

    a+模式下,不论先读还是后读,都是读取不到数据的。
    
    
    1. f = open("⼩娃娃", mode="a+", encoding="utf-8")
    2. f.write("⻢化腾")
    3. content = f.read()
    4. print(content)
    5. f.flush()
    6. f.close()
    还有⼀些其他的带b的操作,就不多赘述了,就是把字符换成字节,仅此⽽已。
    回到顶部(go to top)

    8. 其他相关操作

    8.1 seek(n)

    seek(n):光标移动到n位置,注意,移动的单位是byte,所以如果是UTF-8的中⽂部分要
    是3的倍数。
    通常我们使⽤seek都是移动到开头或者结尾。
    移动到开头: seek(0)
    移动到结尾: seek(0,2)   seek的第⼆个参数表⽰的是从哪个位置进⾏偏移,默认是0,表
    ⽰开头,1表⽰当前位置,2表⽰结尾。
    
    
    1. f = open("⼩娃娃", mode
    相关教程