文件简单读取
# 调用open() 来打开一个文件,可以将文件分成两种类型
# 一种是纯文本文件(使用utf-8等编码编写的文本文件)
# 一种是二进制文件(图片,mp3、ppt等)
# open() 打开文件,默认是文本文件的形式打开,open() 默认的编码是None
# 因此处理文本时,必须指定文件的编码
file_name = 'hello\demo'
try:
with open(file_name) as file_obj:
content = file_obj.read()
print(content)
except FileNotFoundError:
print('{file_name} 这个文件不存在')
读取大文件
# 如果直接调用read() ,会将全部内容读取出来,
# 当读取较大的文件,会一次性将全部内容加载到内存中,容易导致内存溢出
# 因此对于大文件,不直接使用read()
# read() 可以接收一个size参数,该参数用来指定每次读取的字符数量
# 默认值是-1,读取所有字符
# 可以为size指定一个值,这样read() 会读取指定数量的字符
# 每一次读取都是从上次读取到位置开始读取的
# 如果字符的数量小于size ,则读取剩余所有的
# 如果已经读取到了文件的最后了,则会返回‘空字符串’
file_name = 'hello\demo'
try:
with open(file_name,encoding='utf-8') as file_obj:
# 定义一个变量,来指定每次读取的大小
chunk = 3
# 创建一个循环来读取文件的内容
while True:
# 读取chunk 大小的内容
content = file_obj.read(chunk)
# 检查是否读取到了内容
if not content:
# 内容读取完毕,退出循环
break
# 输出内容
#print(content)
file_content += content
except FileNotFoundError:
print(file_name,'文件不存在')
print(file_content)
readline() 读取每一行
# readline():每次读取一行内容
# readlines() 该方法用于一行一行读取内容,并一次性将读取到的内容封装到一个列表中返回
import pprint
file_name = 'hello\demo'
with open(file_name,encoding='utf-8') as file_obj:
# print(file_obj.readline())
# print(file_obj.readline())
# r = file_obj.readlines()
# pprint.pprint(r[1])
for f in file_obj:
print(f)
文件写入
# 文件写入
file_name = 'hello\writedemo'
# 使用open() 打开文件时,必须要指定打开文件所要做的操作(读、写、追加)
# 如果不指定操作类型,默认是读取文件,而读取文件时,是不能向文件进行写入的
# r 表示只读
# w 表示可写,假如文件不存在,则创建;存在,则写入并覆盖
# a 表示追加内容,假如文件不存在,则创建;存在,则追加写入
# x 用来新建文件,如果不存在,则创建;存在,则报错
# + 为操作符增加功能
# r+ :即可读可写,文件不存在,则报错
#
with open(file_name,'w' ,encoding='utf-8') as file_obj:
# 如果操作的是一个文本文件,则write() 需要传递一个字符串作为参数
# 该方法可以分多次向文件中写入内容
file_obj.write('hello write file\n')
file_obj.write('welcome to python')
r = file_obj.write(str(123)+'\n')
print(r)