免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4957 | 回复: 16
打印 上一主题 下一主题

菜鸟求教~如何打开一个文本文档后反转其内容再保存? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-30 17:20 |只看该作者 |倒序浏览
本帖最后由 菊爷 于 2014-10-31 07:48 编辑

       嗨~大家好,我是新手。
       想向大家请教一个问题。
       我的是windows的perl编程环境。
       在学习小骆驼书的时候,有一个题目不会解。
       百度了半天也没把程序写出来。
       现发到此处希望大家指点一二。
  1. #!perl

  2. open TXT,"a.txt";     #打开a.txt文件
  3. print <TXT>;          #将a.txt中的内容输出到屏幕



  4. open TXT,">a.txt";    #仍然是打开a.txt文件,但是在文件名上面加了">"符号,可以将内容输入到这个文件中,不太清楚这是为什么。。。
  5. print TXT "你是一头猪猪";    #可以在a.txt文件中输入这句话然后保存

  6. #然后问题来了,如何将a.txt文件中原有的内容用reverse反转再保存呢?
  7. #我不想去蓝翔。

  8. close TXT;
复制代码

论坛徽章:
0
2 [报告]
发表于 2014-10-30 17:40 |只看该作者
linux:

perl -e 'print reverse <>' $yourfile

论坛徽章:
0
3 [报告]
发表于 2014-10-31 07:49 |只看该作者
我是perl初学者,也不会linux,你这个命令我真是看不懂。。回复 2# b4and5


   

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
4 [报告]
发表于 2014-10-31 09:31 |只看该作者
学新语言一开始必须要模仿,能写一些很常用的模式才行。

这里包括打开和关闭文件,从文件句柄中读取所有行,反转一个列表这三个方面。只有最后一个方面对你是新的才对。

把文件读到一个数组中 @lines = <FH>; #钻石操作符在列表上下文
反转一个数组可以用 @reversed = reverse @lines;
打印数组中的每一行要用 foreach

请在每个文件开始写上 use strict; use warnings; 这是区分好代码和坏代码最重要的标志,没有它们你写的再漂亮我看起来心里也要打个问号的

论坛徽章:
5
技术图书徽章
日期:2014-04-18 08:52:38午马
日期:2014-04-30 13:28:11摩羯座
日期:2014-11-07 13:34:122015年亚洲杯之日本
日期:2015-03-12 14:01:4915-16赛季CBA联赛之北京
日期:2017-06-28 17:25:56
5 [报告]
发表于 2014-10-31 09:42 |只看该作者
  1. open TXT,"a.txt";   
  2. my @arr=<TXT>;         

  3. open TXT,">","a.txt";
  4. for my $i(@arr){
  5.         chomp($i);
  6.         print TXT scalar reverse($i),"\n"
  7. }
  8. close TXT;
复制代码

论坛徽章:
0
6 [报告]
发表于 2014-10-31 10:50 |只看该作者
非常感谢您的指教,以后我在练习的时候一定会加上use strict; use warnings;这两行的!{:3_200:} 回复 4# zhlong8


   

论坛徽章:
0
7 [报告]
发表于 2014-10-31 11:14 |只看该作者
再次感谢您的指导……
然而新问题又来了。
  1. #!perl
  2. use strict;
  3. use warnings;

  4. open TXT,"a.txt";  
  5. print <TXT>,"\n";  
  6. print <TXT>;        #为何每次使用文件句柄都要使用一次open才有用呢?这条语句不会产生任何输出

  7. open TXT,"a.txt";
  8. my @good = <TXT>;
  9. @good = reverse @good;
  10. foreach (@good){
  11.         print "$_\n";     #为何列表中的每项是一行?而不是一个字一项?而且reverse操作会去掉每行结尾的换行符?
  12. }

  13. #那么问题就来了,open操作为何在小骆驼书中前7章没有任何的介绍?,在课后习题中已经出现了很多文件的操作。
  14. #因为我是在windows环境中使用perl,没有学过linux和unix,是否学习过这两个操作系统的都会用opne?
复制代码
回复 4# zhlong8


   

论坛徽章:
0
8 [报告]
发表于 2014-10-31 11:19 |只看该作者
回复 7# 菊爷

zhong8不来了么?哈哈,你这样问问题,一般人会避而远之,因为问题会远远不穷。。。。。还是多看书

   

论坛徽章:
0
9 [报告]
发表于 2014-10-31 11:39 |只看该作者
感谢两位的指导,最后代码是这样,感觉还是比较成功。
  1. #!perl
  2. use strict;
  3. use warnings;

  4. open TXT,"a.txt";  
  5. print <TXT>;  
  6. #print <TXT>;        #为何每次使用文件句柄都要使用一次open才有用呢?这条语句不会产生任何输出
  7. close TXT;

  8. open TXT,"a.txt";
  9. my @good = <TXT>;
  10. @good = reverse @good;      #reverse 会去掉换行符号
  11. close TXT;

  12. open TXT,">a.txt";
  13. foreach (@good){
  14.         chomp $_;
  15.         print TXT "$_","\n";
  16.         print "$_\n";   
  17. }
复制代码
回复 5# murdercool


   

论坛徽章:
0
10 [报告]
发表于 2014-10-31 11:53 |只看该作者
回复 9# 菊爷

reverse会去掉换行符???


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP