mode

mode:
r: 读取,只读.
读取文件的相关操作
1. read()
默认: 读取文件内容(全部)
read(n) 读取n个字符
2. readline() 读取一行
3. readlines() 读取全部. 返回列表
(最重要)4. for line in f: 每次读取一行内容
w:
写入. 只写
创建文件
会清空文件
a:
也可以创建文件
追加写
r+: 对于文件而言. 应该有的操作就两个:读, 写
读写操作
w+:
写读操作
a+:
追加写读

所有带b的表示直接操作的是bytes, 当处理非文本文件的时候.
rb
wb

ab: 断点续传

r+b
w+b
a+b

r

f = open("小护士模特主妇萝莉.txt", mode="r", encoding="utf-8")
# print(f.read(5))  # 读取5个字符
# print(f.read(5))  # 继续读5个
#
# print(f.readline().strip()) # 换行符为分割, strip()可以去掉换行. 读取到的内容第一件事就是去掉空白
# print(f.readline()) # 换行符为分割
#
# f.close()
#
# print("周润发", end="胡辣汤")
# print("周星驰")

# print(f.readlines())  #  一次性把文件中的内容读取到列表中.


# print("你叫什么名字?
 我叫李嘉诚. 可能") #  换行
# print("你叫什么名字?\n 我叫李嘉诚. 可能") #  显示 

# print("你叫什么名字?\\n 我叫李嘉诚. 可能") #  显示 \n


# 文件句柄是一个可迭代对象
# 优点: 相对来说节省内存, 操作相对简单
for line in f: # 从文件中读取到每一行给前面的line
    print(line.strip())
f.close()

w

# 每次用w模式打开文件, 都会清空这个文件(坑)
f = open('胡辣汤', mode="w", encoding="utf-8") # 可以帮我们创建文件

# f.write('河南特色
')
# f.write("东北特色
")
# f.write('陕西特色
')

# 好习惯
f.flush()  # 刷新管道, 把数据写入文件
f.close()

a

f = open("葫芦小金刚", mode="a", encoding="utf-8") # a, append 追加, 在文件的末尾写入内容
# f.write("你叫什么名字啊?")
# f.read() # not readable
f.flush()
f.close()

 +

# f = open("葫芦小金刚", mode="r+", encoding="utf-8")
# content = f.read(2)  # 顺序必须先读, 后写
# # r+特有的深坑:不论读取内容的多少. 只要你读了. 写就是在末尾
# f.write('五娃')
# print(content)


# 一上来会清空文件. 没人用
# f = open("葫芦小金刚", mode="w+", encoding="utf-8")
# # content = f.read(2)  # 顺序必须先读, 后写
# # # r+特有的深坑:不论读取内容的多少. 只要你读了. 写就是在末尾
# # f.write('五娃')
# f.write("又能吐火的, 有能吐水的.")
# # 移动光标
# f.seek(0) # 移动到开头
# s = f.read()
# print("=========>", s)


# 追加写读, 光标在末尾. 所有的写都是在末尾
# f = open("葫芦小金刚", mode="a+", encoding="utf-8")
# f.write("机器葫芦娃召唤神龙, 高喊.我代表月亮消灭你!")
# f.seek(0)
# s = f.read()
# print("=========>", s)

  文件复制

f1 = open("c:/huyifei.jpg", mode="rb")
f2 = open("d:/huerfei.jpg", mode="wb")

for line in f1: # line是从f1中读取的内容
    f2.write(line)  # 把读取的内容原封不动的写出去

f1.close()
f2.flush()
f2.close()

  

原文地址:https://www.cnblogs.com/YangWenYu-6/p/10073527.html