open()打开函数:
'''
f = open(name,mode,encoding)
name:要打开的目标文件名
mode:访问模式:只读r、写入w、追加a 等
encoding:编码格式,常为UTF-8
'''
f = open("D:\Test.txt", "r", encoding="UTF-8")
print(type(f))
read()方法
'''
文件对象.read(num)
num表示读取文件的长度,单位字节,省略则读取文件所有内容
'''
f = open("D:\Test.txt", "r", encoding="UTF-8")
print(f"读取10字节:{f.read(10)}")
print(f"读取文件全部内容:{f.read()}") # 注意:默认接着上次读取结束位置继续读取
readlines()方法
'''
按行一次性读取文件所有内容,返回一个列表,每行数据为一个元素
'''
lines = f.readlines()
print(f"lines对象类型:{type(lines)}")
print(f"lines对象内容为:{lines}") # 为空是因为上面read()方法将文件读完了
f = open("D:\Test.txt", "r", encoding="UTF-8")
lines = f.readlines()
print(f"lines对象类型:{type(lines)}")
print(f"lines对象内容为:{lines}") # 为空是因为上面read()方法将文件读完了
readline():一次读取一行内容
f = open("D:\Test.txt", "r", encoding="UTF-8")
line1 = f.readline()
line2 = f.readline()
print(f"第一行:{line1}")
print(f"第二行:{line2}")
for循环读取文件行
close():关闭文件流,解除占用
# for循环读取文件行
for line in f:
print(f"每一行:{line}")
# close():关闭文件流,解除占用
f.close()
with open语法操作文件可自动关闭文件流
with open("D:\\Test.txt", "r", encoding="UTF-8") as f:
for line in f:
print(f"每一行:{line}")
统计python出现次数
with open("D:/abc.txt", "r", encoding="utf-8") as f:
count = 0
for line in f:
# 也可以在此处去除换行符
# line = line.strip()
# print(line)
word_list = line.split(' ')
# print(word_list)
for element in word_list:
# 注意去除换行符\n,两种方法:1、replace()方法,2、strip()方法去除字符串首位空格与换行符
# element = element.replace('\n', '')
element = element.strip()
print(element)
if element == 'python':
count += 1
print(f"'python'出现次数为:{count}")
line
split()方法分割后存入列表中,不难发现包含换行符
element
注:调试代码时,活用print语句
文件写入:w模式,若文件不存在,自动创建
write()方法写入
flush()刷新方法
f = open("D:/write.txt", "w", encoding="utf-8") # f勿忘
# write()方法写入
f.write("hello world!") # 将内容写入内存,需调用flush()刷新方法才成功写入
# flush()刷新方法
f.flush()
# time.sleep(600000) # 保持程序睡眠
# 关闭文件流
f.close()
向已存在文件写入时,会将文件原内容清空,重新写入
f = open("D:/write.txt", "w", encoding="utf-8")
f.write("java python c")
f.close() # 写人文件调用close()会自动flush()
文件写入:a模式,若文件不存在,自动创建;若文件存在,则在文件最后追加写入文件
f = open("D:/append.txt", "a", encoding="utf-8")
# write()方法写入
f.write("python python py")
# flush()方法刷新
f.flush()
# close()关闭文件流
f.close()
追加已存在文件
f = open("D:/append.txt", "a", encoding="utf-8")
f.write('\njava java c')
f.flush()
f.close()
案例。文件备份,并去除测试样例
with open("D:/bill.txt", "r", encoding="utf-8") as f:
f_bac = open("D:/bill_bac.txt", "w", encoding="utf-8")
for line in f:
line = line.strip() # 去除首位空格、换行符
print(line)
word_list = line.split(',') # 存入列表
print(word_list)
if word_list[4] == '测试':
continue # 测试样例跳过
else:
# f_bac = open("D:/bill_bac.txt", "a", encoding="utf-8") # 追加写法也可实现
f_bac.write(line + "\n")
f_bac.flush()
f_bac.close()