文件 file
- 文件的创建
f = open("./filedemo.txt", "w")
- 文件读取
f1 = open("./filedemo.txt")
f1.read() # 读取所有内容
f1.read(6) # 读取N个字符
line = f1.readline() # 读一行
allline = f1.readlines() # 读取所有行,返回一个列表;
# for循环读取 (一般都用for循环来读取文件,有利于内存)
for line in f1:
oneline = line.rstrip("\n")
print(oneline)
-
文件写入
-
f.write(string)
会把 string 的内容写入到文件中,并返回写入的字符数。 - 也可以用“wb”模式写入二进制数据;
- 用with代码块模式,会在执行完代码块后自动关闭文件;
-
with open(r".\tu1.jpg", "rb") as tu1:
with open(r".\tu2.jpg", "wb") as tu2:
for line1 in tu1:
tu2.write(line1)
- 文件追加
f = open(r".\filedemo.txt", "a")
f.write("\nappend content...")
f.close()
-
f.seek()
- f.tell()` 返回一个整数,给出文件对象在文件中的当前位置,如果有中文,有可能会报错。因为如果是GBK中文是2个字节,如是utf-8编码,一个中文是三个字节;
-
f.tell()
- 返回一个整数,给出光标在文件中的当前位置;
-
f.flush()
- 把内存里的内容刷到硬盘,相当于保存;
- with as
with open(r".\fread.txt", "r") as fread, open(r".\fwrite.txt", "w") as fwrite:
# 就可以在此代码块里对这两个文件对象进行操作;
for line in fread:
fwrite.write(line)
- 文件的修改
import os
old_name = "old_file.txt"
new_name = "new_file.txt"
with open(r".\old_file.txt", "r", encoding="utf-8") as old_file, open(r".\new_file.txt", "w") as new_file:
for line in old_file:
if "o" in line: # 如果一行里有需要替换的关键词
new_line = line.replace("o", "[o]") # 替换关键词
new_file.write(new_line) # 写到新文件
continue # 新的循环
new_file.write(line) # 没有进入if,就把原来的一行写入新文件。
os.remove(old_name) # 删除原文件
os.renames(new_name, old_name) # 把新文件的文件名改成原原件名
- file.truncate()
- 清空文件所有内容
- 注意:仅当以 "r+" "rb+" "w" "wb" "wb+"等以可写模式打开的文件才可以执行该功能,否则报错
f = open(r".\old_file.txt", "w")
f.truncate()
f.close()
- 文本模式
t | 文本模式 (默认)。 |
---|---|
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |