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')

 

posted @ 2023-03-21 23:57  Py小阿白  阅读(34)  评论(0)    收藏  举报