找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

查看: 15|回复: 0

[心得] aardio文件读取

[复制链接]
  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 40 天

    连续签到: 6 天

    [LV.5]常住居民I

    24

    主题

    44

    回帖

    580

    积分

    高级会员

    积分
    580
    来自: 中国贵州贵阳
    发表于 昨天 09:57 | 显示全部楼层 |阅读模式 来自: 中国贵州贵阳
    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA

    今日开启 aardio 文件读写与管理模块的学习,犹如探索计算机文件系统的 “数字档案库”。面对陌生的代码语法虽倍感困惑,但通过对实例的逐步拆解与实践,逐渐掌握了基础操作逻辑,对编程世界的认知也更进了一步。

    一、创建并写入文件:给“电子文件夹”塞资料
    刚接触时,完全不理解代码怎么就能创建文件、写入内容。后来琢磨明白了,这就跟在文件柜里拿出新文件夹,再往里面放资料一个道理。

    案例一:写一行文字到test.txt
    [AAuto] 纯文本查看 复制代码
    import console;
    
    var file = io.file("/test.txt","w+");
    file.write('hello aardio !');
    
    var line = file.readAll();
    console.log(line)
    file.close();
    
    console.pause();




    io.file就像是打开文件的“万能钥匙”,"/test.txt"是文件的“地址”,"w+"表示写入模式,要是文件不存在,它就会自动新建一个。write函数负责把内容“写”进文件,readAll读取内容,print把读到的内容显示出来,最后close就像给文件夹关上了门。

    不过第一次运行时,我发现文件根本找不到,原来是没注意路径。后来才知道,直接写test.txt,文件会建在默认路径里,加个/或~/(~代表用户目录)会更保险。

    案例二:写入多行内容

    [AAuto] 纯文本查看 复制代码
    import console;
    
    var file = io.file("/test.txt","w+");
    file.write('第一行内容','\n');
    file.write('第二行内容','\n');
    file.write('第三行内容');
    var line = file.readAll();
    console.log(line)
    
    file.close();
    console.pause();




    和示例1比起来,就是多写了几行。这里最关键的是\n,它就像键盘上的回车键,要是不加,所有内容都会挤在一行,根本分不清段落。

    二、读取文件:翻“电子文件夹”里的资料
    学会写文件后,我就琢磨着怎么看文件里的内容,这就好比从文件柜里拿出文件夹查看资料。

    案例一:一次性读完文件

    [AAuto] 纯文本查看 复制代码
    import console;
    
    var file = io.file("/test.txt","r");
    var line = file.readAll();
    console.log(line);
    file.close();
    console.pause();




    "r"是只读模式,只能用来读已经存在的文件,要是文件不存在,程序就会报错。readAll()特别方便,能把文件内容一股脑全读出来,适合内容少的文件。但要是文件很大,这么读可能会占用太多内存,这时候就得用逐行读取了。
    案例二:逐行读取文件

    [AAuto] 纯文本查看 复制代码
    import console;
    
    var file = io.file("/test.txt","r");
    while(true){
        var line = file.read();
        if(!line) break;
        console.log(line)
    }
    file.close();
    console.pause();



    一开始看到while(true)这个无限循环,我都懵了,这不会一直读下去吗?后来才明白,file.read()每次读一行,读完一行接着读下一行,当读到文件末尾,line就会变成nil(空值),这时候if(!line) break;就会让循环停下来。就像一页一页翻书,直到把书翻完。

    三、文件管理:整理“电子文件夹”
    除了读写,还得学会管理文件,比如重命名、删除,这就跟整理文件柜里的文件夹一样。

    案例一:重命名文件

    [AAuto] 纯文本查看 复制代码
    import fsys;
    import console;
    var modify = fsys.rename("test.txt","new_test.txt");
    if(modify){
        console.log("修改文件名成功")
    }else {
        console.log("修改失败")
    }
    console.pause();



    fsys.rename就像给文件夹换标签。不过要注意,得先用import fsys;引入文件系统模块,才能使用这个函数。如果文件不在当前目录,还得写清楚路径,不然会找不到文件。

    案例二:删除文件

    [AAuto] 纯文本查看 复制代码
    import fsys;
    import console;
    var delete = fsys.delete("new_test.txt");
    if(delete){
        console.log("删除成功")
    }else {
        console.log("删除失败")
    }
    console.pause();



    删除文件的时候可把我紧张坏了,毕竟删了就找不回来了。fsys.delete就像把文件夹扔进垃圾桶,测试的时候一定要用专门的测试文件,千万别删错重要文件!

    四、综合习题:从写入到计算的实战
    题目是创建data.txt,写入5行数字,再读取每行数字加1后输出。乍一看觉得好难,但一步步拆分就没那么可怕了。
    [AAuto] 纯文本查看 复制代码
    import console;
    
    var file = io.file("/data.txt","w+b");
    for(i = 1; 5; 1){
        file.write(i,'\n');
    }
    file.close();
    file = io.file("/data.txt","r");
    while(true){
        var line = file.read();
        if(!line) break;
        var num = tonumber(line);
        console.log(num+1)
    }
    file.close();
    
    console.pause();
    写入部分和之前学的差不多,用循环把1到5这5个数字依次写进文件。读取部分,因为文件里的数字其实是文本形式,不能直接做加法,所以要用tonumber把文本转成数字,这样才能进行计算。


    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|非业余 - aardio 编程语言 - 非官方问答社区 知道创宇云防御

    GMT+8, 2025-5-17 18:09 , Processed in 0.126757 second(s), 30 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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