python文件基本操作
# 链接资料
- http://c.biancheng.net/python/file/
- https://docs.python.org/zh-cn/3/library/io.html
- https://python3-cookbook.readthedocs.io/zh_CN/latest/chapters/p05_files_and_io.html
链接资料会更具完整
# 文件的读
read()
- read() 读取所有内容
- readline() 每次读取一行内容
- readlines() 读取所有的行保存到列表中
- readable() 判断文件是否可读的
open("a.txt",r) :打开文件
'''
open 之文件的读取
open(path/filename,'rt')---->返回值:stream(管道)
container = stream.read() --->读取管道中内容
注意:如果传递的path/filename有误,则会报错FileNotFoundError
如果是图片则不能使用默认的读取方式 Mode = 'rb'一定要用二进制形式
总结:
read() 读取所有内容
readline() 每次读取一行内容
readlines() 读取所胡的行保存到列表中
readable() 判断文件是否可读的
'''
x = open('a.txt',"r")
# print(x.read()) #文件的读取
result = x.readable() #判断是否可读取是就True,否则false
print("文件a是否可读取",result)
while True:
line = x.readline() #一次只读取一行,后面默认加一个换行
print(line)
if not line:
break
lines = x.readlines() #把文件里的东西保存在列表中
print(lines)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
open() 函数支持的文件打开模式如表 1 所示。
模式 | 意义 | 注意事项 |
---|---|---|
r | 只读模式打开文件,读文件内容的指针会放在文件的开头。 | 操作的文件必须存在。 |
rb | 以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等。 | |
r+ | 打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。 | |
rb+ | 以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)。 | |
w | 以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。 | 若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。 |
wb | 以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件) | |
w+ | 打开文件后,会对原有内容进行清空,并对该文件有读写权限。 | |
wb+ | 以二进制格式、读写模式打开文件,一般用于非文本文件 | |
a | 以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件。 | |
ab | 以二进制格式打开文件,并采用追加模式,对文件只有写权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | |
a+ | 以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | |
ab+ | 以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 |
文件打开模式,直接决定了后续可以对文件做哪些操作。例如,使用 r 模式打开的文件,后续编写的代码只能读取文件,而无法修改文件内容。
图 2 中,将以上几个容易混淆的文件打开模式的功能做了很好的对比:
)
# 文件的写
write()
- write
- writelines([Iterable])
'''
写文件
方法:
write(内容) 每次都会将原来的内容清空在写
writelines([Iterable]) :里面是可以迭代的,没有换行效果,可以自己加
a是向后添加
'''
stream = open('b.txt','a')
s="欢迎来到英雄联盟"
stream.write(s)
stream.writelines(['a\\n','b\\n','c\\n'])
stream.close() #释放资源,文件没有关闭前就可以继续写文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
编辑 (opens new window)
上次更新: 2023/05/17, 23:08:21