文件操作

文件操作

一.文件操作

1.文件操作:

  • open() #打开
  • file #文件的位置(路径)
  • mode #操作文件的模式
  • encoding #文件编码方式
  • f #文件句柄
f = open("密码",mode = "r",encoding = "utf-8")
print(f.read())
f.close()

2.操作文件:

  • 打开文件
  • 操作文件
  • 关闭文件

3.文件操作的模式:

  • r,w,a(重要)
  • rb,wb,ab (次要)
  • r+,w+,a+(没啥用)
f(文件句柄) = open("文件的路径(文件放的位置)",mode ="操作文件的模式",encoding = "文件的编码方式")    #内置函数

二.r,w,a

1.r操作:

f = open("密码",mode = "r",enconding = "utf-8")
print(f.read())    #全部读取
print(f.read(5))   #按照字符进行读取

print(f.readline())    #读取一行内容,自动换行
print(f.readline().strip())  #读取一行内容并去除换行符

print(f.readlines())       #一行一行的读取,存放在列表中

解决大文件
for i in f:
    print(i)          #本质就是一行一行进行读取
 

2.w操作

w操作分为两步:
    1.先清空文件
    2.写入文件
f = open("密码","w",encoding = "utf-8")
f.write("123456789\n")
f.write("123456789\n")



路径:
1.绝对路径     --C:\user\meet\python24\密码
2.相对路径     --   ../ 返回上一层
绝对路径:从根目录下开始一直到文件名。
相对路径:同一个文件夹下面的文件,直接写文件名就可以。

绝对路径打开文件
f =open("C:\user\meet\python24\密码","r",encoding = "utf-8")
print(f.read())

相对路径打开文件:
f = open("../python24/密码,"r",encoding = "utf-8")
print(f.read())

         
f = open(r"C:\user\net\s24\密码","r",encoding = "utf-8")
路径转义:
         1."\\"
         2.r"C:\user\net

###推荐使用相对路径###

s = "[1,'2',3,4]"
print(s)
print(repr(s))        #repr  --显示数据原生态
        
         

3.a操作

a操作:追加写
   在源文件的基础上进行添加

f = open("../day03/密码","a",encoding = "utf-8")
f.write("123456789\n")
f.write("123456789\n")

三.rb,wb,ab操作

1.rb操作:

f1 = open("1.jpg","rb")

print(f1.read())     #全部读取
print(f1.read(3))    #按照字节读取
在读取非文本文件的时候,比如要读取mp3,图像,视频等信息的时候就需要用到rb,因为这种数据是没办法直接显示出来的,这个字节的模式是用于传输和存储.

2.wb操作

f = open("3.jpg","wb")
f.write(f1.read())

3.ab操作

f = open("2.jpg","ab")
f.write("你好".encode("utf-8"))

f = open("2.jpg","rb")
print(f.read())

四.r+,w+,a+操作

1.r+操作:

r+   :  读写,先读后写

正确的操作:
f = open("密码","r+",encoding = "utf-8")
print(f.read())
f.write("你好阿")

错误的操作:
f = open("密码","r+",encoding = "utf-8")
f.write("你好阿")
print(f.read())

2.w+操作

w+    :  清空写,读
f = open("密码","w+",encoding = "utf-8")
f.write("你好阿")
print(f.read())

3.a+操作

a+    :  追加写,读
f = open("密码","a+",encoding = "utf-8")
f.write("你好阿")
print(f.read())




4.其他操作

tell() 查看光标 --返回的是字节数

seek() 移动光标

  • seek(0,0) --移动到文件的头部
  • seek(0,1) --当前位置
  • seek(0,2) --移动到文件的末尾
  • seek(3) --按照字节进行移动(按照编码集,自己进行计算)
f = open("密码","r",encoding = "gbk")
print(f.read(3))       #字符

f = open("密码","rb")
print(f.read(3))       #字节

f = open("密码","r",encoding = "gbk")
print(f.read(3))       #字符

错误操作
f = open("密码","r",encoding = "gbk")
f.seek(-1)
print(f.read())


文件修改

f = open("密码","r",encoding="gbk")
s = f.read()
s1 = s.replace("你太美","吃煎饼")
f1 = open("密码","w",encoding="gbk")
f1.write(s1)

with

with 关键字 open("密码",”r“,encoding = “gbk”) as f:
    文件操作的具体内容

#w,a 检测有文件就操作,没文件就创建
    
    
with open("密码","r",encoding="gbk")as f,\
         open("密码.txt","w",encoding="gbk")as f1:
    for i in f:
        s1 = i.replace("大烧饼","井盖")
        f1.write(s1)

 import os
 os.rename("密码","密码.bak")
 os.rename("密码.txt","密码")

 with open("密码","r",encoding="gbk")as f:
     pass # 缩进操作文件
 print(f.read())  # 文件已经关闭了
posted @ 2019-07-16 20:55  Bugbiss  阅读(141)  评论(0编辑  收藏  举报