码迷,mamicode.com
首页 > 其他好文 > 详细

小甲鱼第28课课后练习

时间:2020-10-08 19:52:25      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:对象   否则   引用计数   制表符   str   位置   忘记   code   for   

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

>>> f = open(E:/test.txt, w)   # A
>>> f = open(E:\test.txt, w)   # B
>>> f = open(E://test.txt, w)  # C
>>> f = open(E:\\test.txt, w)  # D

答:B不能打开文件。

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

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

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

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

答:Python拥有垃圾收集机制,会在文件对象的引用计数降至零的时候自动关闭文件,所以在Python编程里,如果忘记关闭文件并不会造成内存泄漏那么危险。

但并不是说就可以不要关闭文件,如果你对文件进行了写入操作,那么你应该在完成写入之后进行关闭文件。因为Python可能会缓存你写入的数据,如果这中间断电了神马的,那些缓存的数据根本就不会写入到文件中。所以,为了安全起见,要养成使用完文件后立刻关闭的优雅习惯。

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

答:list(f),是不是非常的方便!

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

答:直接使用for语句把文件对象迭代出来即可:

for each_line in f:
        print(each_line)

 技术图片

 

 技术图片

 

 使用read方法,使用文件指针。相当于插入了书签。tell告诉我们的是当前指针的位置(一个中文字符占据两个字节)。

小甲鱼第28课课后练习

标签:对象   否则   引用计数   制表符   str   位置   忘记   code   for   

原文地址:https://www.cnblogs.com/celine227/p/13772817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!