技术问询:如何移除文件路径的最后一部分?
嘿,这个需求我经常碰到,给你整理了几种不同场景下的实现方法,按需取用就行:
移除文件路径最后一部分的实现方案
Python
Python里有两种很省心的方式,推荐用现代的pathlib模块(Python3.4+可用),也可以用传统的os.path:
- 传统
os.path写法:
import os original_path = "user/doc/file1" parent_dir = os.path.dirname(original_path) + "/" print(parent_dir) # 输出: user/doc/
- 更优雅的
pathlib写法:
from pathlib import Path original_path = Path("user/doc/file1") parent_dir = str(original_path.parent) + "/" print(parent_dir) # 输出: user/doc/
哪怕原路径本身是目录(比如"user/doc/"),这两种方法也能正确返回上一级目录哦。
Bash脚本
在Shell环境里,用参数扩展就能快速搞定,不用额外工具:
original_path="user/doc/file1" result="${original_path%/*}/" echo $result # 输出: user/doc/
%/*的作用是去掉最后一个/及其后面的所有内容,手动补上/就符合你的需求了。
JavaScript
Node.js环境直接用内置的path模块最靠谱:
const path = require('path'); const originalPath = "user/doc/file1"; const parentDir = path.dirname(originalPath); const result = parentDir + "/"; console.log(result); // 输出: user/doc/
如果是浏览器环境,没有内置路径模块,写个简单正则也能搞定:
const originalPath = "user/doc/file1"; const result = originalPath.replace(/\/[^\/]*$/, "/"); console.log(result); // 输出: user/doc/
这个正则会匹配最后一个/到结尾的部分,直接替换成/就行。
Java
Java里用java.nio.file.Path类处理路径是标准做法:
import java.nio.file.Path; import java.nio.file.Paths; public class PathHandler { public static void main(String[] args) { Path originalPath = Paths.get("user/doc/file1"); Path parentPath = originalPath.getParent(); String result = parentPath.toString() + "/"; System.out.println(result); // 输出: user/doc/ } }
内容的提问来源于stack exchange,提问作者Samun
相关产品推荐
相关产品推荐

