Day13-文件操作
一、 文件基本操作
1、 打开、读写、关闭
open(file=,mode=,encoding=)
# open 操作文件数据 open(file=文件所在位置,
# mode=操作文件的模式,
# encoding=以什么编码读取文件 二进制数据不需要设置编码)
绝对路径(一个完整的路径) #F: 所在的盘符 最后一个是文件 其他的都是文件夹
相对路径(基于目前的路径获取)
# data.txt
# demo\data1.txt
# ../返回一下
|
模式 |
介绍 |
|
r |
文件不存在就报错 不支持写入 |
|
w |
创建文件和不存在就创建 覆盖原来的文件 |
|
a |
创建文件 和在文件的最后写入 |
|
b |
读写文件变成二进制模式 |
|
+ |
让模式增加读取和写入功能 |
# 操作文件的模式 r 读 w 写 a 追加 b 字节
# + 让模式同时有读和写的能力
f = open(file='data.txt', mode='r', encoding='utf-8')
print(f.read()) # 读取所有的内容
f.seek(0) # 移动光标到指定位置
print(f.read()) # 数据已经被读取,光标移动到最后
f.close()
# w 只写 操作文件的时候清除文本所有内容
# 当文件不存在,创建文件和不存在就创建 覆盖原来的文件
# 相当于在写入数据之前会清空文件里面的所有内容
f = open(file='data000.txt', mode='w', encoding='utf-8')
f.write('python\n')
f.write('文件操作')
f.close()
# 删除所有内容 ctrl+z 撤销操作
# f = open(file='data.txt', mode='w',
encoding='utf-8')
# f.close()
# a 在数据的最后追加数据 创建文件
和在文件的最后写入
# f = open(file='data.txt', mode='a',
encoding='utf-8')
# f.write('\npython\n')
# f.write('文件操作')
# f.close()
|
模式 |
介绍 |
|
read(s) |
不填写s就读取所有文件内容,填写读取指定长度数据 |
|
write |
写入字符串或进制文件 |
|
writelines |
写入以列表保存的字符串或进制文件 |
|
readline |
以行读取维护据 |
|
readlines |
读取所有数据存放列表 |
# readline 按行进行读取
# f = open(file='data.txt', mode='r',
encoding='utf-8')
# print(f.readline()) # 只需要一行数据 每次运行都会读取一行
# print(f.readline()) # 按行进行读取
# f.close()
# readlines 按行读取全部内容 并保存到列表中
f = open(file='data.txt', mode='r', encoding='utf-8')
print(f.readlines()) # ['静夜思\n', '唐代:李白\n', '床前明月光,疑是地上霜。\n']
f.close()
# writelines 把列表里面的数据保存到文件里面
f = open(file='data000.txt', mode='a', encoding='utf-8')
f.writelines(['123456', 'abcd'])
f.close()
# 修改内容
f = open(file='data.txt', mode='r', encoding='utf-8')
file_data = f.readlines()
f.close()
file_data[2] = '你好\n' # 修改列表的第三个内容 替换内容 ''
f = open(file='data.txt', mode='w', encoding='utf-8')
f.writelines(file_data)
f.close()
# 上下资源管理器 as 重命名
with open('data.txt', 'r', encoding='utf-8') as f:
f.writelines('')
# 操作完成自动关闭文件
二、文件与文件夹操作
复制、重命名、移动、删除
# os 模块
import os # 导入模块
# random 随机模块 time 时间 os 系统
# math 数学模块
# os.listdir('路径') 获取文件中的文件
file_list = os.listdir(r'E:\PycharmProjects\python_project2206\day14-高阶函数')
print(file_list) # ['lambda应用.py', '递归.py', '高阶函数使用.py']
# os.getcwd 获取当前路径
print(os.getcwd()) # E:\PycharmProjects\python_project2206\day15-文件操作
# os.rename 重命名文件或者文件夹
# 更具路径的最后一个数据来操作的
# os.rename(老的路径,新的路径)
# 修改文件的名称 绝对路径修改
os.rename(r'E:\PycharmProjects\python_project2206\day15-文件操作\data.txt',
r'E:\PycharmProjects\python_project2206\day15-文件操作\data_file.txt')
# 相对路径修改
# os.rename(r'data_file.txt', r'data.txt')
# 修改文件夹 名称
os.rename(r'E:\PycharmProjects\python_project2206\day15-文件操作\demo',
r'E:\PycharmProjects\python_project2206\day15-文件操作\text')
# os.remove 删除文件
# os.remove(文件所在的路径)
os.remove(r'E:\PycharmProjects\python_project2206\day15-文件操作\text\data2.txt')
# os.mkdir
创建文件夹 只能创建一个文件夹 一个一个文件夹的创建
# os.mkdir(r'F:\python_project2206\day15-文件操作\demo')
# os.mkdir(r'F:\python_project2206\day15-文件操作\demo1\demo1')
# os.makedirs() # 创建整个路径
# os.makedirs(r'F:\python_project2206\day15-文件操作\demo1\demo1')
# os.rmdir
删除文件夹 只能删除空的文件夹
# os.rmdir('demo')
import shutil
# 删除全部内容 shutil.rmtree
shutil.rmtree('text') # 可以把文件和内容全部删除
# shutil.copy
复制文件 修改文件位置和名称
# shutil.copy('demo1\data.txt',
'text\data2.txt')
浙公网安备 33010602011771号