https://www.runoob.com/python3/python3-file-methods.html
file() 函数用于创建一个 file 对象,它有一个别名叫 open()
1. 文件打开
open() 函数
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file: 必需,文件路径(相对或者绝对路径)。写入模式下,若文件不存在会自动创建
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8,一般需要限定
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
参考:https://www.runoob.com/python3/python3-func-open.html
mode模式 | 描述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
2. 文件关闭
file.close() : 关闭文件,关闭后文件不能再进行读写操作。
使用完文件后,及时关闭,避免占用系统资源,同时防止文件损坏或丢失
3. 文件读取
-
file.read([size]) : 从文件读取指定的字节数,如果未给定或为负则读取所有。
--未指定size时,当文件大小为当前机器内存两倍时,就会产生问题
-
file.readline([size]) : 读取整行,包括 “\n” 字符。不指定size时每次读取一行。
可以循环遍历文件对象来读取文件中的每一行
fobj = open('sample.txt')
for x in fobj:
print(x, end = '')
fobj.close()
- file.readlines([sizeint]) : 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。
4. 文件写入
file.write(str)
将字符串写入文件,返回的是写入的字符长度
fobj = open("ircnicks.txt", 'w') # 先使用写入模式打开文件,ircnicks.txt若不存在,会自动创建
fobj.write('powerpork\n') # write()方法写入数据,一行需要以\n结尾
fobj.write('indrag\n')
fobj.close()
copy file1 to file2
import sys
#参数验证
if len(sys.argv) < 3:
print("Usage: python ",sys.argv[0]," file1 file2")
sys.exit(1) # 程序异常退出
f1 = open(sys.argv[1]) # 只读模式打开file1
s = f1.read() # 读取file1,将字节内容赋值给s
f1.close # 关闭file1
f2 = open(sys.argv[2],'w') # 写入模式打开file2
#f2.write(s) # 将s中存储的file1的内容 写入f2
f2.close # 关闭 f2
5. 脚本
脚本样例:
分析给定文本文件,返回其空格,制表符,行的相关信息: 提取码 th6f
CopyFIle : 提取码 z23s