zoukankan      html  css  js  c++  java
  • 小甲鱼Python第028讲集合:因为懂你,所以永恒 | 课后测试题及参考答案

    0.下边只有一种方式不能打开文件,请问是哪一种,为什么?

    1 f = open('E:/test.txt','w')   #A
    2 f = open('E:	est.txt','w')   #B
    3 f = open('E://test.txt','w')   #C
    4 f = open('E:\test.txt','w')   #D

     

      B不能打开文件。

      window在路径名中既可以接受斜线(/)也可以接受反斜线(),不过如果使用反斜线作为路径名的分隔符的话,要注意使用双反斜线(\)进行转义,否则Python会将反斜线进行转义,例如( )看出成一个换行符,( )看做一个制表符等。

    1.打开一个文件我们使用open()函数,通过设置文件的打开模式,决定打开的文件具有那些性质,请问默认的打开模式是什么呢?

     

      open()函数的默认打开模式是“rt”,即可读、文本模式打开。

      可以在IDLE中输入help(open)进行查看。

    2.请问>>>open('E:\Test.bin','xb')是以什么样的模式打开文件的?

      创建一个新的文件,并且可以写入,以及以二进制的模式打开文件(E:\Test.bin)

      注意“w”与“x”均是以“可写入”的模式打开文件,但是“x”模式打开的时候,如果路径下已经存在相同的文件名,会抛出异常,而“w”模式的话会直接覆盖原来的同名文件。因此“w”模式打开问价会比较危险,容易导致此前的内容遗失,因此使用“w”模式打开文件前先检查该文件名是否已经存在显得非常重要!下节课 小甲鱼会教如何安全打开一个文件。

    3.尽管Python有所谓的“垃圾回收机制”,但是对于打开了的文件,在不需要用到的时候我们仍然需要使用f.close()将文件对象“关闭”,这是为什么呢?

      Python拥有垃圾收集机制,会在文件对象的引用计算降至零的时候自动关闭文件,所以在Python编程里,如果忘记关闭文件并不会造成泄漏那么危险。但是并不是说就可以不关闭文件,如果你对文件进行了写入操作,那么你应该在完成写入之后进行关闭文件。因为Python可能会缓存你写入的数据,如果这中间断电了····,那些缓存的数据根本不会写入到文件中,所以为了安全起见,要养成是用哪个完文件后立刻关闭的优雅习惯。

    4.如何将一个文件对象(f)中的数据存放进列表中?

    list(f)

    5.如何迭代打印出文件对象(f)中的每一行数据?

    1 f = open("E:\record.txt")
    2 for each_line in f:
    3     print(each_line)

    6.文件对象的内置方法f.read([size]= -1)作用是读取文件对象内容,参数size是可选的。那如果设置了size = 10,例如f.read(10),将返回什么内容呢?

      

      将返回从文件指针开始(注意这里不是文件头)的连续10个字符。

    7.如何获得文件对象(f)当前文件指针的位置?

    f.tell()   #会得到相应的答案

    8.还是视频中的那个演示文件(record.txt),请问为何f.seek(46)就出错了呢?

      

      因为使用f.seek()定位的文件指针是按字节为单位进行计算的,演示文件(record.txt)是以GBK进行编码的,按照规则,一汉字需要占用两个字节。f.seek(45)的位置位于字符“小”的开始位置,因此可以正常打印,而f.seek(46)的位置刚好位于字符“小”的中间位置,因此按照GBK编码的形式无法将其解码!

    动动手:

    0.尝试将文件(OpenMe.mp3)打印到屏幕上。

    1 f = open('OpenMe.mp3')
    2 for each_line in f:
    3     print(each_line,end = "")
    4 f.close()

    1.编写代码,将上一题中的文件(OpenMe.mp3)保存为新文件(OpenMe.txt)。

    1 f1 = open('OpenMe.mp3')
    2 f2 = open('OpenMe.txt','x')              #使用“x”打开更安全
    3 f2.write(f1.read())
    4 f2.close()
    5 f1.close()
  • 相关阅读:
    SSH框架整合-myeclipse
    查看mysql数据库文件存放位置
    Java反射及注解学习- 反射的使用
    线程join方法demo-模拟叫号看病
    线程同步案例
    线程死锁示例
    《广西壮族自治区食品药品监督管理局》代码
    复习点算法知识,水仙花数加冒泡排序,以及一道算法题
    词性标注 HMM
    kd树
  • 原文地址:https://www.cnblogs.com/IT-NXXB/p/13227642.html
Copyright © 2011-2022 走看看