python 文件路径名、文件名、后缀名操作

在Python中,处理文件路径时推荐使用os.path模块,确保跨平台兼容性。os.path.dirname()返回路径的目录,basename()获取基本名称,split()拆分路径为头部和尾部,而splitext()用于分离文件名和扩展名。了解这些函数有助于高效地操作文件路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当需要使用路径名来获取文件名、目录名、绝对路径等等的时候,墙裂推荐使用常用路径操作模块os.path。

Talk is cheap. Show me the code.

__author__ = '1665407674@qq.com'
# -*- coding: utf-8 -*
import os

root_path = 'C:\\Python37\\Tools\\scripts\\2to3.py'
# 杩斿洖鏂囦欢鍚?
basename = os.path.basename(root_path)
print(basename)#2to3.py

# 杩斿洖鐩綍璺緞
dirname = os.path.dirname(root_path)
print(dirname)#C:\\Python37\\Tools\\scripts

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
dirname,basename = os.path.split(root_path)
print(dirname)#C:\Python37\Tools\scripts
print(basename)#2to3.py

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
root,ext = os.path.splitext(root_path)
print(root)#C:\Python37\Tools\scripts\2to3
print(ext)#.py

# 灏嗙洰褰曞拰鏂囦欢鍚嶅悎鎴愪竴涓矾寰?
join_path = os.path.join('C:\Python37\Tools','scripts','2to3.py')
print( join_path ) #'C:\\Python37\\Tools\\scripts\\2to3.py'

#绫籙nix鐨勮矾寰?
root_path = '/Users/Google/Data/path.csv'

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
print(os.path.split(root_path))
#('/Users/Google/Data', 'path.csv')

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
print(os.path.splitext(root_path))
#('/Users/Google/Data/path', '.csv')
print( os.path.join('/Users/Google/','Data','path.csv') ) #'C:\\Python37\\Tools\\scripts\\2to3.py'

对于任何的文件名的操作,你都应该使用os.path 模块,而不是使用标准字符串操作来构造自己的代码。特别是为了可移植性考虑的时候更应如此,不同的操作系统具有不同的路径名称约定,os.path 模块始终是适合 Python 运行的操作系统的路径模块。其次,你真的不应该浪费时间去重复造轮子,通常最好是直接使用已经为你准备好的功能。


os.path.dirname(path)
    返回路径 path 的目录名称。
    这是将 path 传入函数 split() 之后,返回的一对值中的第一个元素。

os.path.basename(path)
    返回路径 path 的基本名称。
    这是将 path 传入函数 split() 之后,返回的一对值中的第二个元素。
    请注意,此函数的结果与Unix basename 程序不同。
    basename 在 '/foo/bar/' 上返回 'bar',而 basename() 函数返回一个空字符串 ('')。

os.path.split(path)
    将路径 path 拆分为一对,即 (head, tail),
    其中,tail 是路径的最后一部分,而 head 里是除最后部分外的所有内容。
    tail 部分不会包含斜杠,如果 path 以斜杠结尾,则 tail 将为空。
    如果 path 中没有斜杠,head 将为空。如果 path 为空,则 head 和 tail 均为空。
    head 末尾的斜杠会被去掉,除非它是根目录(即它仅包含一个或多个斜杠)。
    在所有情况下,join(head, tail) 指向的位置都与 path 相同(但字符串可能不同)。

os.path.splitext(path)
    将路径 path 拆分为一对,即 (root, ext),使 root + ext == path,
    其中 ext 为空或以英文句点开头,且最多包含一个句点。
    路径前的句点将被忽略,例如 splitext('.cshrc') 返回 ('.cshrc', '')。


参考:
https://www.cnblogs.com/baxianhua/p/10214512.html
https://www.runoob.com/python/python-os-path.html
https://docs.python.org/zh-cn/3.8/library/os.path.html

这个错误是由于无法连接到本地主机的10248端口导致的。这个端口通常是kubelet进程监听的端口,用于健康检查。出现这个错误可能是由于kubelet进程没有正确启动或者配置错误导致的。 解决这个问题的方法是检查kubelet进程的状态和配置。你可以按照以下步骤进行操作: 1. 检查kubelet进程是否正在运行。你可以使用以下命令检查kubelet进程的状态: ```shell systemctl status kubelet ``` 如果kubelet进程没有运行,你可以使用以下命令启动它: ```shell systemctl start kubelet ``` 2. 检查kubelet的配置文件。你可以使用以下命令查看kubelet的配置文件路径: ```shell kubelet --kubeconfig /etc/kubernetes/kubelet.conf --config /var/lib/kubelet/config.yaml --bootstrap-kubeconfig /etc/kubernetes/bootstrap-kubelet.conf config view ``` 确保配置文件中的端口号和地址正确,并且与你的环境相匹配。 3. 检查网络连接。你可以使用以下命令检查是否可以连接到localhost10248端口: ```shell curl -sSL http://localhost:10248/healthz ``` 如果无法连接,请确保端口没有被防火墙或其他网络配置阻止。 4. 检查docker的配置。有时候,kubelet进程依赖于docker进程。你可以按照以下步骤检查docker的配置: - 创建/etc/docker目录: ```shell sudo mkdir /etc/docker ``` - 编辑/etc/docker/daemon.json文件,并添加以下内容: ```json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "registry-mirrors": ["https://tdhp06eh.mirror.aliyuncs.com"] } ``` - 重启docker进程: ```shell systemctl restart docker ``` 请注意,以上步骤是一种常见的解决方法,但具体解决方法可能因环境而异。如果以上步骤无法解决问题,请提供更多的错误信息和环境配置,以便我们能够更好地帮助你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值