python的文件操作

Posted on 2019-06-13 19:41  就叫冰块吧  阅读(185)  评论(0编辑  收藏  举报

文件操作

相关操作

# import os
# print(os.getcwd())  # 查看当前工作路径
# 其他操作:
# tell() 查看光标 -- 返回光标的当前位置(字节)
# seek 移动光标
    # seek(0,0) # 移动光标到文件开始位置
    # seek(0,1) # 光标的当前位置
    # seek(0,2) # 移动光标到文件的末尾位置
    # seek(3)   # 按照字节移动

1.基本结构

f = open ( '文件路径文件名' ,mode = '读或写' ,encoding = '编码')用什么编码打开,f是文件句柄
content  = f.read()
print(content)
f.close()

另一种方式

 with open("路径",mode="模式",encoding="编码") as f#赋值:  # 
    \open("a",mode="w",encoding="gbk") as f1:
	#缩进 print(f.read())

# with open 帮助自动关闭文件
# with open 同时操作多个文件

2.读模式(r,rb,r+)

r模式

 f = open("a",mode="r",encoding="gbk")
 content = f.read()    # 全部读取read()将文件中的内容全部读取出来;
#弊端 如果文件很大就会非常的占用内存,容易导致内存崩溃
 c1 = f.read(3)        # 字符读取
 print(f.readline())  # 读取一行内容#括号内加数字是读当前行的几个字符,不会读下一行
 print(f.readlines())#一行一行读取,存储到列表中   \n是换行
f.close()#关闭文件
 f = open("a",mode="r",encoding="gbk")
 for i in f:
    print(i)#一行一行读

rb模式

f = open('文件路径名字',mode='rb')#rb读出来的是bytes类型,可以用来打开未知编码的文件或图片
content = f.read()
print(content)
f.close()
 
结果:
b'\xe6\xa0\x87\xe9\xa2\x98\xe5\xbe\x88\xe5\xa5\xbd'

r+模式

#r+模式一定要记住是先读后写
#深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入
#或者操作文件的时候都是在结尾进行的操作.

2写模式(w,wb,w+)

w模式

在写文件的时候我们要养成一个写完文件就刷新的习惯. 刷新flush()

f = open('../path1/小娃娃.txt#文件路径',mode='w'写模式,encoding='utf-8')
f.write('太白很白')f.flush()#刷新解放内存
f.close()

写的注意事项

当选择使用w模式的时候,在打开文件的时候就就会把文件中的所有内容都清空,然后在操作
注意点:如果文件不存在使用w模式会创建文件,文件存在w模式是覆盖写,在打开文件时会把文件中所有的内容清空.

wb模式

  • 写入是用bytes写入来存储,一般是把图片等转化成字节形式来写入存储

w+模式

  • 先将所有的内容清空,然后写入.最后读取.但是读取的内容是空的,不常用

3.追加(a,ab,a+)

只要是a或者ab,a+都是在文件的末尾写入,不论光标在任何位置.

在追加模式下,我们写入的内容后追加在文件的末尾

f1  = open ( '../path1/小娃娃.txt' ,mode =  'a' ,encoding = ('utf-8' )
msg  =f1.write('这支烟灭了以后')

4.修改文件

# 修改文件:
# with open("原文件")as f,open("新文件")as f1:
    # f.for循环的读取
    # f1.for循环的写入

# import os
# os.rename("原文件名字",备份名字")    # 对原文件进行备份
# os.rename("新文件名字","原文件名字") # 把新文件改成原文件的名字

Copyright © 2024 就叫冰块吧
Powered by .NET 9.0 on Kubernetes

回顶部