Python中除了os.path.join()拼接路径,还有其他什么方式拼接文件夹路径?

Python中除了os.path.join()拼接路径,还有其他什么方法拼接多分级文件夹路径?

常规单路径拼接

首先,我们讲一下os.path.join()拼接路径的用法:

正常,我们是一个路径+文件名

用os.path.join(path,filename)就可以将此文件的路径拼接起来

path = r'D:\Cplusplusprojects\CPP'
filename = “main.cpp”
full_path = os.path.join(path,filename)  #full_path就可以作调用,传递参数等后续用途

多分级路径的拼接

例如,我们某个文件夹路径下的还有多分级的路径及文件/include/utils.h,那如何实现呢?

按照常规思路,大致会用到os.path.join(),但是此时会报错:

no such file or dictory

那么问题根源在于斜杠的方向,r’D:\Cplusplusprojects\CPP’会编译成"D:\ \Cplusplusprojects\ \CPP",

如果再接地址D:\ \Cplusplusprojects\ \CPP/include/utils.h,就会报错

那分隔符手工修改后,并不能直接用使用了os.path.join()了,使用的结果是会把path路径吃掉,直接后后面的分级目录了!

那如何拼接呢?

直接就字符串相加拼接full_path = path + filename

path = r'D:\Cplusplusprojects\CPP'
filename = r"\include\utils.h"
# full_path = os.path.join(path, filename)
full_path = path + filename
print(full_path)

#打印结果
D:\Cplusplusprojects\CPP\include\utils.h

这样就可以实现多分级路径的拼接了

循环下的多路径拼接

实际使用中,代码的作用是批量作用,如果失去了效率,还不手工,那如何实现循环下的多路径拼接?

format常用的形式是f’{variable}’

folders = [f"{project_name}/",
               f"{project_name}/src",
               f"{project_name}/include",
               f"{project_name}/build",
               f"{project_name}/docs",
               f"{project_name}/scripts"
        ]
        
files = [
        f'{path}\{project_name}'+r'\src\main.cpp',
        f'{path}\{project_name}'+r'\include\utils.h',
        f'{path}\{project_name}'+r'\CMakeLists.txt',
        f'{path}\{project_name}'+r'\README.md',
    ]
for file in files:
    fp = open(file, 'a')
   

我们将单个拼接的方式,进行修改成format形式的语句,可以在不同的文件夹里面写入不同的格式的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值