文件打开,关闭操作
#用于练习文件的打开关闭操作
#打开文件必须异常处理
try:
#文件打开 open()方法
file = open("itertor.py")
print("文件已成功打开")
#文件读写内容
#文件关闭,close()方法
file.close()
print("文件已成功关闭")
except IOError: #如果文件不存在等原因造成打开失败,会抛出IO错误
print("文件打开失败")
文件操作练习:
#用于练习文件的打开关闭操作
#读取一个通讯录文件,文件内容如下:
# tonywang 10000000000
# wangcc 111102733532
# suhh 17777777777
# fuyl 12722222222
#定义read_file函数用于读取联系方式
def read_file():
L = []
try:
#文件打开 open()方法,以read_only, text方式
file = open("itertor.py","rt")
print("文件已成功打开")
#文件读写内容
while True:
s = file.readline()
if not s:
#如果文件读取完毕,则return退出
file.close()
return L
idx = s.index(' ')
name, num = s[:idx], s[idx+1:]
#去除空格和换行符
num = num.strip()
L.append((name,num))
except IOError: #如果文件不存在等原因造成打开失败
print("文件打开失败")
#定义print函数用于输出
def print_file(L_contact):
for name,num in L_contact:
#格式化输出contact和number
print("name:{:<30} num:{:<20}".format(name,num))
print_file(read_file())
mode 模式字符的含义
字符 | 含义 |
---|---|
'r' | 以只读方式打开(默认) |
'w' | 以只写方式打开,删除原有文件内容(如果文件不存在,则创建该文件并以只写方式打开) |
'x' | 创建一个新文件, 并以写模式打开这个文件,如果文件存在则会产生"FileExistsError"错误 |
'a' | 以只写文件打开一个文件,如果有原文件则追加到文件末尾 |
'b' | 用二进制模式打开 |
't' | 文本文件模式打开 (默认) |
'+' | 为更新内容打开一个磁盘文件 (可读可写) |
python 文件常用方法:
方法 | 说明 |
---|---|
F.close() | 关闭文件(关闭后文件不能再读写会发生ValueError错误) |
F.readline() | 读取一行数据, 如果到达文件尾则返回空行 |
F.readlines(max_chars=-1) | 返回每行字符串的列表,max_chars为最大字符(或字节)数 |
F.writelines(lines) | 每行字符串的列表 |
F.flush() | 把写入文件对象的缓存内容写入到磁盘 |
F.read(size = -1) | 从一个文件流中最多读取size个字符 |
F.write(text) | 写一个字符串到文件流中,返回写入的字符数 |
二进制文件操作方法 | |
F.tell() | 返回当前文件流的绝对位置 |
F.seek(offset, whence=0) | 改变数据流的位置,返回新的绝对位置 |
F.readable() | 判断这个文件是否可读,可读返回True,否则返回False |
F.writable() | 判断这个文件是否可写,可写返回True,否则返回False |
F.seekable() | 返回这个文件对象是否支持随机定位 |
F.truncate(pos = None) | 剪掉 自pos位置之后的数据,返回新的文件长度(字节为单位) |