Python Day03
程序员文章站
2022-05-03 08:16:09
...
- Set
https://blog.csdn.net/qq_29756987/article/details/88667360
- 文件操作
1.在使用open时,因为Python的默认编码格式为GB2132,所以需要转换为相对应的编码格式,否则有可能会报错。
f = open("python.txt", encoding="uft-8")# 文件句柄
f.read()
2.不同变量记录同一个句柄的时候,在没有手动改变光标位置前,第二次不会显示,可以理解为第一次文件读完后,光标在末尾,第二次从文件尾开始读。
# 假设python.txt内容为'Hello World'
f = open('python.txt', encoding='utf-8')
data1 = f.read()
data2 = f.read()
print(data1,data2)
=>Hello World
3.open的正确读写形式应该指定文件名,编码格式,读写模式
f = open('python.txt', 'r+', encoding='utf-8')
data = f.read()
print(data)
4.读操作
f = open('python.txt', 'r', encoding='utf-8')
data = f.read()
print(data)
f.close()
=>Hello World
5.写操作
f = open('python.txt', 'w', encoding='utf-8')
f.write('\nHello Python!')
f.close()
这里注意,这里用的只读的方法,所以在open之后如果去做度的操作就会报错;此时写的话会覆盖原先的文件内容。
6.追加操作
f = open('python.txt', 'a', encoding='utf-8')
f.write('\nHello C#!')
f.close()
7.read/readline
read(),会读取文件中所有的内容;readline(),一行一个行的读。
f = open('python.txt', 'r', encoding='utf-8')
# 这样在读取大文件有可能会很占用内存
for line in f.readlines():
print(line.strip())# strip删除文本中空格和换行
# 效率最高 f为迭代器,不是一个列表
for line in f:
print(line)
f.close()
8.tell/seek/seekable
tell将当前句柄所在的指针打印出来(可以想象为光标位置);seek句柄回到指定位置;seekabel不是所有的句柄都是可以移动的,判断文件是否可以移动光标(Linux下一切皆文件)
f = open('python.txt', 'r', encoding='utf-8')
print(f.tell())
print(f.read(5)) #读取5个字符
print(f.tell())
f.seek(0) # 回到最开始位置
print(f.tell())
=>0 5 0
9.encoding打印当前文件编码
10.fileno返回当前文件在内存的编号
11.readable判断文件是否可读
12.flush
上一篇: PHP实现事件机制范例分析