python代码学习——python文件处理及路径处理

存储相关

  • 输入设备将数据存入存储器
  • 数据需要进行处理时,CPU从存储器中将数据读入内存,处理后输出至存储器
  • 然后处理过的数据会输出至输出设备
  • CPU由运算器和控制器组成
    • 运算器:完成各种算数运算,逻辑运算,数据传输等数据加工处理
    • 控制器:控制程序的执行
    • 存储器:用于记忆程序和数据,例如内存
    • 输入设备:将数据或者程序输入到计算机,例如鼠标和键盘
    • 输出设备:将数据或者程序的处理结果展示给客户,例如显示器,打印机等
  • 一般说I/O操作,指的就是文件I/O,如果是网络IO,就会直接说网络IO

路径处理——os

  • 3.4版本之前,使用os.path,3.4版本之后,使用pathlib

os.path

  • python中处理路径,有一个专门的OS模块,所以要导入OS模块才能进行路径处理
  • 路径都是由文件夹的名字组成的,例如:“E:\BaiduNetdiskDownload\Study\python12_202001\python12_path&file\python_path.py”

目录的新建与删除

  • 需要使用os模块,导入:import os
  • mkdir 新建一个目录
  • rmdir 删除一个目录
  • mkdir和rmdir 命令支持相对路径,支持绝对路径,相对路径是针对当前写代码的文件而言的
  • 建立多级目录 使用mkdir命令,在括号中写多级路径即可,但是创建多级目录时,不能跨级去创建,除最后一级之外的所有路径都必须存在。否则就会报错
  • 如果你创建的目录名称已存在时,执行新建代码会报错
  • 删除包含有子文件夹的目录,不可以跨级去删除,会报错
#以下操作为相对路径
os.mkdir("python12")#在当前目录下,新建一个python12的目录
os.mkdir("python12")#错误代码,在同路径下创建名称冲突的目录,会报错
os.rmdir("python12")#在当前目录下,删除一个python12的目录
os.mkdir("python12\A")#在当前目录下,新建一个python12\A的多级目录;如果python12目录不存在,就会报错,创建失败
#以下操作为绝对路径
os.mkdir("E:\BaiduNetdiskDownload\Study\python12_202001\python12_path&file\python12")#在绝对路径下新建一个python12的目录
os.rmdir("E:\BaiduNetdiskDownload\Study\python12_202001\python12_path&file\python12")#在绝对路径下删除一个python12的目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

路径操作

绝对/相对路径方式获取路径信息

1.使用**os.getcwd()**方法来获取,此种方法不需要传参
这个方法的意思是:获取当前的工作路径,具体到文件
2.使用 os.path.realpath(__file__)方法,此种方法需要传参
这个方法的意思是:获取当前的工作路径,具体到模块(py文件)
3.以上两种获取文件路径的方式不能混用

import os
path = os.getcwd()#获取到当前的工作路径,具体到文件
print(path)
#获取当前的工作路径,具体到模块名(py文件)
path_1 = os.path.realpath(__file__)#(__file__)表示当前文件本身
print(path_1)
#获取非当前运行文件的路径信息

路径拼接和realpath方法

  • 在代码环境改变后,运行代码时会出现文件找不到的情况,绝对路径和相对路径两种获取路径的方式都不可取,所以需要路径拼接和来解决
路径拼接
  • 使用+,将两个字符串格式的路径拼接起来,使用+时注意前面要加“+”
  • 使用路径拼接函数:os.path.join
  • 使用join拼接时,可以添加多个路径来拼接
import os
real_path = os.path.realpath(__file__)  #获取当前路径
print(real_path)
new_path = os.path.split(real_path)#将当前路径分离
print(new_path)
a_path = new_path[0]#取出分离后的第一个值
print(a_path)
a_path_1 = new_path[0]+'\python12\A'#将取出的值和新的路径进行拼接
print(a_path_1)
path = os.getcwd()
path_2 = os.path.join(path,"path13")
print(path_2)
path_3 = os.path.join(path,"path13","python14")#里面可以加多个,无论多少个都可以
print(path_3)
path_4 = os.path.join(path,'python13/python14/python15')
print(path_4)
***************************run_result**********************
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\IO_module.py 
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\IO_module.py
('C:\\Users\\zhxg\\PycharmProjects\\pythonProject\\Study_py\\202302', 'IO_module.py')
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\python12\A
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\path13
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\path13\python14
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\python13/python14/python15
realpath方法
  • 补充函数:os.path.split(目标路径)
  • 意思是:目标路径分离,可将最后一级与其他路径分离开,其返回的结果为元组
  • 拆分一次的路径不能再次进行拆分,如果要拆分,则需要使用元组的取值方式将路径取出来后在进行拆分
import os
real_path = os.path.realpath(__file__)  #获取当前路径
print(real_path)
new_path = os.path.split(real_path)#将当前路径分离
print(new_path)#打印分离结果
a_path = new_path[0]#取出分离后的第一个值
print(a_path)
a_path_1 = new_path[0]+'\python12\A'#将取出的值和新的路径进行拼接,使用+做字符串处理
print(a_path_1)
new_path_1 = os.path.split(os.path.split(real_path)[0])#多次分离路径,注意分离的路径时元组,需要取值后再进行分离
print(new_path_1)
***************************run_result**********************
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\IO_module.py 
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\IO_module.py
('C:\\Users\\zhxg\\PycharmProjects\\pythonProject\\Study_py\\202302', 'IO_module.py')
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302
C:\Users\zhxg\PycharmProjects\pythonProject\Study_py\202302\python12\A
('C:\\Users\\zhxg\\PycharmProjects\\pythonProject\\Study_py', '202302')

其他函数

  • isdir 是否目录 ,在os.path后面
  • isfile 是否是文件,在os.path后面
  • dirname 返回路径的文件夹名,传入的数据为路径,在os.path后面
  • listdir 返回当前目录下的所有路径,要传一个目录进去,在os后面
  • basename 返回当前文件的文件名 ,传入的数据也是目录,在os.path后面
  • abspath 根传入的参数,显示其绝对路径,例如:“.”表示当前路径,“…/”表示绝对路径
import os
real_path = os.path.realpath(__file__)  #获取当前路径
print(real_path)
print(os.path.isdir(real_path))  #是否是目录
print(os.path.isfile(real_path)) #是否是文件
print(os.listdir(os.path.split(real_path)[0])) #返回当前目录下的所有路径,需要传一个目录进去
print(os.path.dirname(real_path))  #返回路径的文件夹名
print(os.path.basename(real_path))  #返回路径的文件名
print(os.path.abspath("."))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值