perl有句格言:There is more than one way to do it。意思就是任何问题用perl都有好几种解决方法。以前处理文件路径的时候都是自己写正则表达式,而用perl的模块来解决则更加迅速、准确。

1). File::Basename

有3个方法:fileparse、basename、dirname。 
用法: 
       ($name,$path,$suffix) = fileparse($fullname,@suffixlist); 
        $basename = basename($fullname,@suffixlist); 
        $dirname = dirname($fullname);

说明: 
a) 方法fileparse是将一个文件的全路径拆成三部分,文件名、目录名和后缀,@suffixlist是给一个后缀的集合。例如 
($base,$path,$type) = fileparse('\\virgil\\aeneid\\draft.book7', qr{\.book\d+}); 
则输出 $base ==> draft; $path ==> \virgil\aeneid\; $type ==> book7。 
b) 方法basename和fileparse的输入格式一样,返回的是文件名加后缀。 
c) 方法dirname返回文件目录名。 
注意,dirname和fileparse第二个返回值的比较: 
i) 目录结尾有无\; 
dirname('\\virgil\\aeneid\\draft.book7') ==> \virgil\aeneid 
fileparse('\\virgil\\aeneid\\draft.book7') ==> \virgil\aeneid\ 
ii) 输入参数为目录; 
dirname('virgil\\') ==> . 
fileparse('virgil\\') ==> virgil\

2). File::Spec::Functions

这个模块输出File::Spec类的方法,分为两类: 
(1) 可直接调用: 
canonpath||catdir||catfile||curdir||rootdir||updir||no_upwards||file_name_is_absolute||path 
(2) 以 File::Spec->方法名的形式调用: 
devnull||tmpdir||splitpath||splitdir||catpath||abs2rel||rel2abs||case_toleran

这里举几个常用的方法说明一下: 
a) 方法catdir:将目录合并, 
catfile('a','b','c') ==> a\b\c 
b) 方法splitdir:与catdir相反,拆分目录 
File::Spec->splitdir('a\\b\\c\\') ==>('a','b','c',' ') #注意最后有个空格

3). File::Path

有2个方法:mkpath和rmtree,分别为创建目录和删除目录。

perl语言本身自带了mkdir和rmdir,那为什么还要选用 mkpath和rmtree呢?自带的mkdir只能一次创建一级目录,而mkpath则可以一次创建多级;rmdir必须要求目录为空,而rmtree 则任意。总之,File::Path为我们提供了另一种创建和删除目录的机制,由用户自己选用。

说明: 
a) mkpath(directory, 1, 0711); 
第一个参数为目录名,第二个参数为一个bool值,为真的时候打印每次创建的目录,默认为假,最后一个参数为目录的权限。 
b) rmtree(directory, 1, 1); 
第一个参数为目录名,第二个参数为一个bool值,为真的时候打印删除文件时的一些信息,默认为假,最后一个参数也是一个bool值,为真的时候对没有删除权限的文件直接跳过。

转载于:https://www.cnblogs.com/yechanglv/p/6923202.html

perl 处理文件路径的一些模块相关推荐

  1. python 文件路径及time模块记录

    文件路径及time模块记录 文件路径相关方法 本地文件路径 相关代码 运行结果 时间模块相关方法 代码 运行结果 文件路径相关方法 本地文件路径 首先我的文件路径是这样的: Folder Sub_fo ...

  2. Python模块学习:glob 文件路径查找

    文章转载自<伯乐在线>原文出处: Darkbull Python模块学习:glob 文件路径查找 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用w ...

  3. python获取文件路径名_python文件名获取文件路径

    如何使用Python获取文件所在目录和文件名 python中如何根据文件名找他的路径.现在我遍历到怎么才能将某一个文件对应的路径找到呢? 遍历用os.walk: import osfrom os.pa ...

  4. python通过路径找文件_Python寻找路径和查找文件路径的示例

    怎么python系统的查找路径要是爱你爱的少些,话就可以说的多些了.简?奥斯汀 ⒈单击开始,在搜索框输入cmd,然后回车,就会出现命令行界面框后,在里面输入命令python后回车,安装成功的话就可以看 ...

  5. mac怎么用c语言写文件路径,Mac 中使用os模块更改文件路径

    cmd+opt+c 复制路径 path='/Applications/MAMP/htdocs/python/day04model/' import sys import os sys.path.app ...

  6. python os.path 模块 路径文件名 新建文件夹 文件 路径 是否存在

    os.path 模块主要用于获取文件的属性. 以下是 os.path 模块的几种常用方法: 方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(pa ...

  7. Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码

    Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码 目录 文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码

  8. python中的glob 模块学习文件路径查找

    glob glob.glob(pathname), 返回所有匹配的文件路径列表.它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径. import glob ...

  9. python的哪个模块提供了文件处理方法_Python处理文件路径有哪些方法?

    在python中找寻路径的方法有很多,当然也有新方法在不断地更新中.对于新手的python小白来说,肯定是越简单越好用的最受欢迎.小编经过一番找寻,为大家带来两种方法,大家可以根据接受情况选择. 老方 ...

最新文章

  1. 分页存储过程性能比较 二分法
  2. Java中变量、类初始化顺序
  3. Winform判断一个窗口是否以模态化方式打开
  4. STM32——系统滴答定时器
  5. 背景图层和普通图层的区别_图层样式(一)—高级混合选项
  6. 新手入坑自动驾驶,从 JetBot 机器人小车开始,能学到什么?
  7. c++ 的 stl模板库_C ++中的标准模板库(STL)
  8. localStorage、cookie的使用总结
  9. 提高网页打开速度的一些小技巧
  10. 【优化调度】基于matlab遗传算法求解公交车调度优化问题【含Matlab源码 040期】
  11. 华为模拟器路由器交换机远程控制
  12. FreeRTOS学习-day01
  13. 如何使用计算机勾绘汇水面积,第八章 地形测量_同济大学:测量学(八)_ppt_大学课件预览_高等教育资讯网...
  14. Jmeter性能测试工具实现对数据库mysql进行连接并压测
  15. STP生成树/BPDU保护小实验
  16. android 软电话 开发包-JNI 封装 SIP 协议,可进行二次开发应用于VOIP
  17. 2022第十五届全国大学生信息安全竞赛(ciscn)西南赛区部分WP
  18. Oracle 语法中的 INSERT INTO
  19. 游戏行业被黑客攻击勒索怎么办?
  20. 鼠标悬停 -css如何实现鼠标移至图片上显示遮罩层及文字

热门文章

  1. 想咸鱼翻身不粘锅?加油
  2. 这 10 道 Java 测试题,据说阿里 P7 的正确率只有 50%
  3. 跟随弹幕停不下来?智慧文娱还有哪些新玩法
  4. 一张图,看懂阿里云的“飞天”史
  5. 一道浅浅的山脊 —— 游戏3D造型艺术的工业化进程
  6. 《CODM》的成功源自何处?TGA年度移动游戏的总结和思考
  7. Highcharts 环境配置介绍
  8. UltraEdit批量删除关键字所在的指定行
  9. ORACLE11G自动维护任务简析
  10. linux系统中的目录讲解