文件的读写
函数open()返回一个表示文件的对象,open的第一个参数是文件名,第二个参数是要对文件进行的操作,不写的话是默认是只读 ‘r’ 。
- r : 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式 。
- w :打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件 。
- rb : 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
- wb : 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
关键字with 在不再访问文件后将其关闭,(也可以调用open( ) close( )来关闭)
read( )方法 ,读取指定的字符,开始定位在文件的头部,每执行一次向后移动指定的字符数。
python只能将字符串写文本文件,要将数值数据存储到文本文件中,必须使用str()将其转化为字符串格式 。
with open('data.txt') as f:
contents = f.read()
print(contents)
f = open('data.txt')
print(f.read())
f.close()
#逐行读取
filename = 'pi_digits.txt'
with open(filename) as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
readlines( ) : 一次读取全部数据成一个列表。
readline( ) : 读出一行的数据 。
文件路径
显示文件路径时,windows系统可以使用斜杠(/) ,但是它建议好像说用反斜杠(\),但是反斜杠还不能直接用,因为反斜杠在字符串用于字符串转义。所以要用反斜杠(\)的时候都写 (\) 。
f = open("e:\\test.txt",encoding = 'utf-8')
content = f.readline()
print(content)
f.close()
# f = open("e:/test.txt",encoding = 'utf-8')
# content = f.readlines()
# print(content)
# f.close()
异常
使用try-except语句处理
# try的嵌套
import time
try:
f = open('test.txt'.'r')
try:
while True:
content = f.readline()
if len(content)== 0:
break
time.sleep('2')
print(content)
finally:
f.close()
print("文件关闭")
except Exception as e:
print("发生异常")
存储数据
模块json可以让你将简单的python数据结构转储到文件中 。
使用json.dump( )和json.load( ) 。
json.dump( )接受两个参数,要存储的数据,存储的文件。
# 使用dump来存储数组
import json
a = ['a','b','c']
with open('array.json','w') as f :
json.dump(a,f)