Python-Day10
文件操作
一、打开文件
文件句柄 = open('文件路径', '模式')
打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:基本的方式 encoding='utf-8' ----> 字符串类型
r ,只读模式【默认】
# 只读 'r'
f = open('x.log', 'r', encoding='utf-8')
r = f.read()
# f.write('hahah') 报错
f.close()
print(r)
w,只写模式【不可读;不存在则创建;存在则清空内容;】
f = open('x1.log', 'w')
f.write('hahah')
f.close()
x, 只写模式【不可读;不存在则创建,存在则报错】
f = open('x3.log', 'x')
f.write('hahah')
f.close()
a, 追加模式【不可读;不存在则创建;存在则只追加内容;】
f = open('x3.log', 'a')
f.write('hahahqqqqqqqqqqqqqqqqq')
f.close()
"+" 表示可以同时读写某个文件
r+, 读写【可读,可写】
w+,写读【可读,可写】
x+ ,写读【可读,可写】
a+, 写读【可读,可写】
"b"表示以字节的方式操作 -----> 字节类型
rb 或 r+b
f = open('x.log', 'rb')
r = f.read()
f.close()
print(r, type(r))
print(str(r, encoding='utf-8'))
wb 或 w+b
f = open('x.log', 'wb')
f.write(bytes('buzhidao你好xingbuxing', encoding='utf-8'))
f.close()
xb 或 x+b
ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型
文件操作与指针
f.seek(num) 改变指针到num字节处,然后从num处读写
f.tell() 获取当前指针的位置
写操作完成后指针指向最后位置,再读的话读不出内容出来
r 模式会将指针放在文件开始位置处,w 会清空文件然后把指针放在文件开始处, a 模式会将指针指向文件结尾处
f.readline()会读取一行内容
for line in f:
print(line)
#该操作会一次读取一行内容
自动关闭文件:
with open('h.log', 'w+') as f:
f.write('hahahah')
f.seek(0)
r = f.read()
print(r)
with 可以同时操作两个文件:
with open('h.log', 'r') as f, open('h2.log', 'w') as f2:
for line in f:
f2.write(line)
#复制操作