python文件操作

筅森魡賤 提交于 2019-11-27 21:12:08

单词

with
open
mode
encoding
read
readline
write
close
tell
seek
rename

文件操作是什么?

# 文件操作是什么?
# 操作文件:
# f = open("文件路径",mode="模式",encoding="编码")
# 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")
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!