Python笔记5 - 文件操作

目录

1、创建和打开文件

2、关闭文件和 with方式打开文件

3、绝对路径和相对路径

①绝对路径:

②相对路径:

③下级关系文件的访问

4、文件夹与os模块


1、创建和打开文件

# 使用open函数打开或创建一个文件
file = open(name, mode)
# name:文件名(可以包含文件所在的具体路径), mode:文件的打开模式
# r read 只读模式
# w write 只写模式
# a append 只写模式,追加模式,在文件末尾追加

#####
# 读操作的相关方法
# 从文件 开头 读取指定长度  read()
file.read([size])
# size:指定读取的字符个数,省略则默认读取全部内容

# 将文件指针移动到新的位置 seek()
file.seek(size, whence)
# size : 指定移动的字符个数  whence: 指定从什么位置开始计算,0--文件头,1--当前位置,2--文件尾
# 如果从文件尾开始的话,要注意在size前加负号

# 写入操作
file = open('python.txt', 'w',encoding='utf-8')
# 加入\n一次写入多行
file.write('写入的内容\n'
           'hello world\n'
           'hello bigdata')
file.close()
mode参数的参数值及说明
说明注意
r以只读模式打开文件。文件的指针会放在文件的开头文件必须存在
rb以二进制格式打开文件,并且采用只读模式,指针放在开头,一般用于非文本的文件
r+打开文件后,可以读取文件内容,也可以写入新的内容从开头覆盖原有内容
rb+二进制格式打开文件,读写
w以只写模式打开文件文件存在,则将其覆盖;否则创建新文件
wb以二进制打开文件,只写模式
w+打开文件后,先清空内容使其成为空文件,在进行读写
wb+二进制打开,读写模式
a追加模式打开文件,若是已存在的文件,指针会在文件末尾;否则,创建新文件用于写入
ab二进制打开,追加模式
a+以读写模式打开,若是已存在的文件,指针会在文件末尾;否则,创建新文件用于写入
ab+二进制打开,追加模式

2、关闭文件和 with方式打开文件

# 打开文件后需关闭文件
file.close()

# with语句打开文件
with 表达式 as 变量 :
    语句块
##
with open('message.txt','w') as f :
    f.write('123456')

3、绝对路径和相对路径

①绝对路径:

一般从盘符开始,然后一级一级向下寻找(不能越级),直到找到我们想要的文件。

绝对路径一般路径固定了,文件就不能移动,在迁移过程中也比较麻烦。

相对路径

不需要从盘符开始,首先需要找到一个参考点(Python代码本身)

③下级关系文件的访问

同级关系:我们要访问的文件与Python代码处于同一目录,访问时可以使用 ./文件名称 或直接写 文件名称

上级关系:通过 ../ 来访问,如果是多级,则通过../../../  .....一层层访问

下级关系:与Python代码同级的某个文件夹的下面,则可通过 文件夹名称/文件名称 来访问

4、文件夹与os模块

# os模块与文件夹(目录)操作
import os
os.函数名()
# 还有其子模块 os.path

# 与文件相关的操作
rename(旧文件名,新文件名)	对文件进行重命名
remove(文件名)	删除文件
os.rename('python.txt','python1.txt')
os.remove('python[备份].txt')

# 与文件夹相关的操作
# 创建一个 message文件夹  os.mkdir()
# 在创建文件夹之前要先判断这个文件夹是否存在,如果存在了还进行创建的话会报错
if not os.path.exists('message'):
    # 创建文件夹
    os.mkdir('message')
if not os.path.exists('message/avatar'):
    os.mkdir('message/avatar')

# 获取当前工作路径  os.getcwd()
print(os.getcwd())   #/Users/maclin/PycharmProjects/test/文件

# # 切换到指定路径  os.chdir()
os.chdir('message/avatar')   #/Users/。。/PycharmProjects/test/文件/message/avatar
print(os.getcwd())
# # 往上跳三级,切换到上一级test目录
os.chdir('../../../')    #/Users/。。/PycharmProjects/test
print(os.getcwd())

# 打印当前目录下的所有文件信息(以列表形式) os.listdir()
print(os.listdir())

# 删除文件夹,只能删除是空的
os.rmdir('message/avatar')

### 如果要删除非空文件夹,可以使用 递归删除 , shutil模块
# 但要慎重,确认路径是对的
import shutil
shutil.rmtree('要删除文件夹的路径')
os模块及其子模块相关函数
os相关函数说明os.path相关函数说明
getcwd()返回当前的工作目录abspath(path)用于获取文件或目录的绝对路径
listdir(path)返回指定路径下的文件和目录信息,返回列表exists(path)用于判断目录或者文件是否存在,返回True或False
mkdir(path)创建目录join(path,name)将目录与目录或者文件名拼接起来
makedirs(path1/path2...,mode)创建多级目录splitext()分离文件名和扩展名
rmdir(path)删除指定的‘空’的文件夹basename(path)从一个目录中提取文件名
removedirs(path1/path2...,mode)删除多级目录dirname(path)从一个路径中提取文件路径,不包含文件名
chdir(path)把path设置为当前工作目录isdir(path) 用于判断是否为路径
walk(top,topdown,onerror)遍历目录树,该方法返回一个元祖,包括所有路径名,所有目录列表和文件列表3个元素

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值