# 文件I/O
# 操作文件的步骤
# 1.打开文件
# 2.操作文件(读、写),然后保存
# 3.关闭文件
# 使用open函数打开一个文件
# open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
# 如果目标文件和当前文件在同一级目录下,可以直接使用文件名
file_name = 'daily.txt'
file_obj = open(file_name)
print(file_obj)
content = file_obj.read() # 读取文件
print(content)
# 关闭文件
file_obj.close()
# with... as 语句打开文件
# 调用open()来打开一个文件,可以将文件分成两种类型
# 一种是纯文本文件,使用utf-8等编码编写的文本文件
# 一种是二进制文件,图片、mp3、ppt等文件
# open打开的文件默认都是文本形式,open()默认编码格式是None,所以打开文件时必须指定文件编码。
try:
with open(file_name) as file_obj:
# 直接调用read()时会把文件内容一次性全部读取,如果文件过大,一次性加载到内存中会导致内存泄漏
# print(file_obj.read())
# read()中可以接收一个size作为参数,该参数指定要读取的字符数量
# 可以为size指定一个值,这样read就会读取指定数量的字符,每次读取都是从上次读取的位置开始读取,如果剩下的内容数量小于size,则会读取所有的内容。
# size = 100
# file_content = ''
# while True:
# content = file_obj.read(size)
# if not content:
# break
# file_content += content
# print(file_content)
# readLine()用来读取一行
print(file_obj.readline())
print(file_obj.readline())
# 读取所有的内容
print(file_obj.readlines())
except FileNotFoundError as e:
print('找不到文件')
# 写入文件
# file_name = '1寸.jpg'
new_file = 'aa.png'
try:
with open(file_name,'r+',encoding='gbk') as file_obj:
# wirte()来向文件中写入内容,如果是一个文本文件,只可以写入字符串
# oprn()中默认是读取文件,
# r 表示只读
# w 表示可写,写入文件时如果文件不存在会自动创建,如果存在会覆盖文件原有内容
# a 表示追加,写入文件时如果文件不存在会自动创建,如果存在会追加到原文件中
# r+ 表示可读可写
# w+ 表示可读可写
# a+ 表示可读可写
# file_obj.write('aaaa\n')
# 读取模式 rb 表示读取二进制文件 ,rt表示读取文本文件(默认值)
# 读取文本文件时size以字符为单位,二进制文件以字节为单位
# size = 1024 * 100
# with open(new_file,'ab') as new_obj:
# while True:
# content = file_obj.read(size)
# if not content:
# break
# new_obj.write(content)
# tell()查看文件读取的位置
print(file_obj.read(100))
print('当前读取到-->',file_obj.tell())
# seek()可以修改当前读取的位置
file_obj.seek(100)
# 可以设置两个参数
# 第一个参数表示要切换到的位置
# 第二个参数表示计算位置方式
# 可选值0:从头开始计算,1:从当前位置开始计算,2:从最后位置开始计算
file_obj.seek(110,1)
print(file_obj.read(100))
pass
except FileNotFoundError as e:
print('找不到文件')
# 文件的其他操作
import os
from pprint import pprint
# 获取指定目录的目录结构
print(os.listdir())
# 获取当前所在目录
print(os.getcwd())
# 切换当前所在目录作用相当于cd
print(os.chdir('c:/'))
# 创建目录
os.mkdir('aaaa')
# 删除目录
os.rmdir('aaaa')
# 删除文件
os.remove('aa.png')
# 重命名
os.rename('oldname','newname')