设为首页 收藏本站
查看: 1044|回复: 0

[经验分享] Perl入门(五)Perl文件读写

[复制链接]

尚未签到

发表于 2018-8-30 10:29:45 | 显示全部楼层 |阅读模式
  http://blog.csdn.net/sunshoupo211
  Perl文件夹操作
  Perl创建、删除、修改文件夹
  mkdir("文件夹名称",权限);
  rmdir("文件夹名称");
  rename("旧文件夹名称","新文件夹名称");
  权限:4代表可读,2代表可写,1代表可执行;权限的组成:[前缀0][文件所有者][同组用户][其他用户]。
  生成的数字序列由拥有的权限对应的数字加和计算得到。
  如‘0755’代表:文件所有者可读可写可执行,同组用户可读可执行,其他用户可读可执行。
  注意:
  一次只能创建/删除一个文件夹;
  删除的文件夹必须为空文件夹;
  为了更安全的操作文件夹,一般在各种操作后添加“|| die "失败描述信息$!"”,意思为:“如果失败了,输出信息,然后终结进程”。另外$!是系统错误提示信息。
  [python] view plain copy
  #!user/bin/env perl -w
  #预定义两个文件夹路径
  @dirs=("newFolder","newFolder/insideFolder1","newFolder/insideFolder2");
  #创建文件夹
  #Perl mkdir 只能创建最后端的文件夹,它认为中间的文件夹都是已经存在了的
  #如果你先执行下面这句,则会告诉你找不到这样的文件夹
  #mkdir ($dirs[1],0755) || die "folder $dirs[1] can not be created! cause by:$!" ;
  foreach $dir (@dirs)
  {
  mkdir ($dir,0777) || die "folder $dir can not be created! cause by:$!";
  }
  #rename方法可以更改文件夹名称
  rename("newFolder/insideFolder1","newFolder/insideFolder3")||die "rename folder failed! cause by:$!";
  #删除文件夹,被删除的文件夹必须为空
  rmdir($dirs[2]) || die "remove folder failed!cause by:$!";
  Perl获取文件夹列表
  1.获取文件夹操作句柄
  opendir(句柄名称,文件夹路径);
  2.读取文件列表
  readdir(句柄名称);
  3.关闭文件句柄
  closedir(句柄名称);
  其他方法:
  1.glob获取文件夹下列表
  glob(文件夹路径/);
  2.glob方法的简写
  ;
  XXXXdir和glob方法对比:
  1.glob方法返回文件数量有限,如果文件夹下文件过多,则只会提示“过多的内容”;
  2.glob方法返回的文件列表带路径;
  3.glob方法由于是调用本地机器的方法协助工作,故效率低。
  [python] view plain copy
  #!user/bin/env perl -w
  #获取文件夹列表
  opendir (FOLDER,"newFolder") || die "can not open folder!cause by:$!";
  my @folders1 = readdir(FOLDER);
  #如只需要某一些满足条件的内容,可以使用下面写法
  #my @folders = grep(!/.+/,readdir(FOLDER));
  foreach $file (@folders1)
  {
  print "$file\n";
  }
  closedir(FOLDER);
  print "-" x 50;
  print "\n";
  my @folders2 = glob("newFolder/");  
  #简化为:my @folders = ;
  foreach $file (@folders2)
  {
  print "$file\n";
  }
  输出结果:
  [java] view plain copy
  .
  ..
  insideFolder1
  insideFolder2
  newFolder/insideFolder1
  newFolder/insideFolder2
  版权声明:本文为博主原创文章,未经博主允许不得转载。
  本文已收录于以下专栏:perl学习


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-558814-1-1.html 上篇帖子: Perl入门(四)Perl的正则表达式 下篇帖子: Perl入门(六) Perl方法的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表