python文件操作

python文件操作

基本语法
f = open("文件路径",mode="模式",encoding="编码") 
f.read()


解析
open()  调用操作系统打开文件
mode    # 对文件的操作方式
encoding # 文件的编码  -- 存储编码要统一
           # win -- gbk
           # linux -- utf-8
           # mac   -- utf-8  最常用的就是utf-8
# f 文件句柄  -- 操作文件的相当于锅把

文件操作怎么用?
读 r
写 w清空写 ,a追加写
读 rb
写 wb   ab

文件的读r

# f.read()    # 全部读取
# f.read(3)        # 字符读取
# readline(3)  # 读取一行内容中多个字符
# f.readlines()) # 一行一行读取,存储到列表中   \n是换行
with open('cs.txt',encoding='utf-8',mode='r') as f1:
    # print(f1.read())#全部读取 注意 一般不这么读 耗内存
    print(f1.read(1))# 字符读取 注意不是读取字节 符号也是一个字符
    # print(f1.readline())#读一行 注意会记录光标 \n是换行
# with open('cs.txt', encoding='utf-8', mode='r') as f1:
    # for i in f:  # 迭代读取 一行一行读取 -- 防止内存溢出
    #     print(i)

# 路径
# F:\a\111.txt  绝对路径 从磁盘的根处查找
# 相对路径      相对于当前文件进行查找的

# repr() #函数将对象转化为供解释器读取的形式。
dict = {'runoob': 'runoob.com', 'google': 'google.com'}
print(repr(dict),type(repr(dict)))
# import os
# print(os.getcwd())  # 查看当前工作路径

# 另一种打开文件的方式.
# with open("day8",mode="r",encoding="utf-8") as f,\
#     open("a",mode="w",encoding="gbk") as f1:
#     print(f.read())
#     f1.write("真饿!")

文件的写w,a

# 写 w 清空写  a 追加写
# f = open("cs.txt",mode="w",encoding="utf-8")
# f.write("123")
# f.close()  # 关闭文件

# a 追加写 追加到末尾
# with open('cs.txt',encoding='utf-8',mode='a') as f1:
# #     f1.write('你最棒')

文件读写非文本wb

# rb ,wb,ab 不能指定编码
# print(f.read())  # read()  全部读取

# with open('cs.jpg',mode='rb') as f1:
#     print(f1.read())
#     print(f1.read(3))  # 读取的是字节

import requests
import os
ret = requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png")
a=os.path.dirname(os.path.dirname(__file__))
b=os.path.join(a,'1.jpg')
with open(b,mode='wb') as f1:
    f1.write(ret.content)

文件操作+模式

# r 读  r+ 读写  注意,要先读后写 如果写写在读 光标会在最后就读不出内容了
# w 写  w+ 写读 真的废物
# a 写  a+ 写读
# r+
#正确示范   -- 后期开发中使用频率比较低
# f = open("day8",mode="r+",encoding="utf-8")
# print(f.read())
# f.write("脑瓜疼啊脑瓜疼")

调整文件光标

# 在a 模式 读完后关标在最后 所以我们要注意这些小问题
# 查看光标: tell()  返回值 返回的就是当前光标的位置
# 移动光标:
#   seek(0,0) 文件开始位置
#   seek(0,1) 光标的当前位置
#   seek(0,2) 文件末尾位置
#   seek(3)   按照字节调节  使用utf-8是3 gbk是2

文件的修改

原理就是边读边写
# 不好用 好耗内存
# with open("day8",mode="r+",encoding="utf-8")as f:
#     content = f.read()
#     content = content.replace("您","你")
#     f.seek(0,0)
#     f.write(content)

# 利用for循环 边读边写 与os模块
# with open("cs.txt",mode="r",encoding="utf-8")as f,\
# open("cs_bak.txt",mode="a",encoding="utf-8")as f1:
#     for i in f:
#         content = i.replace("你","我")
#         f1.write(content)
#
# import os
# os.remove("cs.txt")  # 原数据可以使用rename来做备份
# os.rename("cs_bak.txt","cs.txt")


yuan=r'C:\Users\86131\Desktop\程序员之路笔记\系统测试学习\测试方法.md'
gai=r'C:\Users\86131\Desktop\程序员之路笔记\系统测试学习\测试方法.md.bak'
with open(yuan,mode="r",encoding="utf-8")as f,\
open(gai,mode="a",encoding="utf-8")as f1:
    for i in f:
        content = i.replace("回到顶部","")
        f1.write(content)

import os
os.remove(yuan)  # 原数据可以使用rename来做备份
os.rename(gai,yuan)
posted @ 2020-02-29 21:07  一起奥利给  阅读(176)  评论(0编辑  收藏  举报