打开文件:调用open函数
open(file, mode='r', buffering=-1, encoding_=None, errors=None, newline=None, closefd=True, opener=None)
在windows系统使用路径时,可以使用/来代替 \
或者可以使用 \\ 来代替 \
或者也可以使用原始字符串加一个r:
r'hello\demo.txt'
关闭文件:调用close()方法来关闭文件
file_obj.close()
文件的读取:通过 read() 来读取文件中的内容
# 读取大文件的方式
file_name = 'demo.txt'
try:
with open(file_name,encoding='utf-8') as file_obj:
# 定义一个变量,来保存文件的内容
file_content = ''
# 定义一个变量,来指定每次读取的大小
chunk = 100
# 创建一个循环来读取文件内容
while True:
# 读取chunk大小的内容
content = file_obj.read(chunk)
# 检查是否读取到了内容
if not content:
# 内容读取完毕,退出循环
break
# 输出内容
# print(content,end='')
file_content += content
except FileNotFoundError :
print(f'{file_name} 这个文件不存在!')
利用readline函数或如下循环也可
for t in file_obj: print(t)
文件的修改:
使用open()打开文件时必须要指定打开文件所要做的操作(读、写、追加)
如果不指定操作类型,则默认是 读取文件 , 而读取文件时是不能向文件中写入的
r 表示只读的
w 表示是可写的,使用w来写入文件时,如果文件不存在会创建文件,如果文件存在则会截断文件
截断文件指删除原来文件中的所有内容
a 表示追加内容,如果文件不存在会创建文件,如果文件存在则会向文件中追加内容
x 用来新建文件,如果文件不存在则创建,存在则报错
+ 为操作符增加功能
r+ 即可读又可写,文件不存在会报错
w+
a+
with open(file_name , 'r+' , encoding='utf-8') as file_obj:
文件
读取模式:
t 读取文本文件(默认值)
b 读取二进制文件
读取文件的位置:
seek
seek()需要两个参数
第一个 是要切换到的位置
第二个 计算位置方式
可选值:
0 从头计算,默认值
1 从当前位置计算
2 从最后位置开始计算
中文是3个字节才表示一个字符
tell
tell() 方法用来查看当前读取的位置
print('当前读取到了 -->',file_obj.tell())
文件的其他操作:
import os
from pprint import pprint
# os.listdir() 获取指定目录的目录结构
# 需要一个路径作为参数,会获取到该路径下的目录结构,默认路径为 . 当前目录
# 该方法会返回一个列表,目录中的每一个文件(夹)的名字都是列表中的一个元素
r = os.listdir()
# os.getcwd() 获取当前所在的目录
r = os.getcwd()
# os.chdir() 切换当前所在的目录 作用相当于 cd
# os.chdir('c:/')
# r = os.getcwd()
# 创建目录
# os.mkdir("aaa") # 在当前目录下创建一个名字为 aaa 的目录
# 删除目录
# os.rmdir('abc')
# open('aa.txt','w')
# 删除文件
# os.remove('aa.txt')
# os.rename('旧名字','新名字') 可以对一个文件进行重命名,也可以用来移动一个文件
# os.rename('aa.txt','bb.txt')
os.rename('bb.txt','c:/users/lilichao/desktop/bb.txt')