鱼C论坛

 找回密码
 立即注册
查看: 2029|回复: 1

[学习笔记] 第28-31节学习笔记——文件

[复制链接]
发表于 2020-1-25 11:36:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wxyj3496 于 2020-1-25 11:36 编辑

1、用内置函数open('文件路径和文件名')
2、打开模式如下图
打开文件.JPG
3、文件方法
对象方法.JPG
4、写入文件后,执行内建方法关闭close()才会保存在硬盘里,否则只会存在内存中
5、将一个文件存成另一个后缀的方法如下
另存的方法.JPG
6、使用w打开文件,只要不使用close()关闭文件,就可以使用write()内建函数接着写下去。执行完close()后,在用w打开,就是覆盖了。
123.JPG

7、python很灵活,可以用如下语句直接逐行读,直接打印每行了
f=open('e:\\text.txt')
for eachline in f:
      print(eachline)
8、第30节的课后练习0,如下图,若按原程序使用all_files = os.listdir(os.curdir)中的os.chudir,可以有效判断文件夹。使用'c;\\','c:',不能识别文件夹,使用'.'可以识别文件夹,'..''pardir'也不可以。疑问啊??????打印出来,都是字符串啊。不清楚判断为dir(目录的判据)
捕获.JPG
    做了个验证,应该是需要具备以下两个条件,才会判断为目录
       a.目录真实存在
       b.路径完整,是绝对路径
    如下图
      捕获.JPG
    但是练习题中的写法,打印出来也没路径啊。我只能认为,打印出来时,把路径隐藏了。
    百度了一下,果然,如下图
    捕获1.JPG
     代码验证如下图:
      捕获2.JPG
          然后,我指定目录绝对路径打印,发现原来是listdir()的问题,假使我这样写
      捕获3.JPG
     执行后是这样
      捕获4.JPG
     上图中,e:\code是我程序的所在目录,e:\code\之后呢,是我指定路径d:\Programms下的文件清单。listdir()把执行文件目录和指定文件目录的文件名拼接在一起,产生了绝对路径,这个绝对路径是不存在的,所以在执行isdir()时,会输出False。貌似时listdir()的一个bug。

           将代码做如下改变就可以实现任意路径判断目录的功能,如下图,先用listdir()读出文件名,在使用os.path.split()分离出文件名,再用os.path.join,将
文件名和目录合并。
      捕获5.JPG
     执行结果如下,注意我执行文件在E:\code下,已经换过来了。
      捕获6.JPG
    任意路径判断文件和文件夹个数的代码如下
      捕获7.JPG
         在做课后题2时,发现还可以使用os.dir()改变当前工作目录的方法实现
      捕获1.JPG
9 第30节的课后练习2,当目录输入为根目录时,会报如下错误,不是根目录没有关系。搞了一下午,无解,留后续解决
捕获2.JPG 捕获3.JPG
10 第30节课后题4中os.wolk()功能如下
捕获4.JPG
练习如下,os.walk()可以把指定目录下的所有文件列出来,包含子目录,返回多个元组,每个元组是一级目录,每个元组里面包括三个数组,第一个数组是目录,第二个是目录下的文件夹,第三个是目录下的文件
捕获5.JPG
11、第30节,课后题4,打开文件会报如下错误,需要进一步了解
捕获.JPG
12、pickle可以将所有文件转化为二进制文件,也可以将转化好的二进制文件在恢复成原文件,方法入下。可用于存放数据,节省程序代码。
捕获.JPG

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
zltzlt + 5 + 5

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-29 23:01:56 | 显示全部楼层
练习2其实可以用os.walk方法做
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 13:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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