零基础学习Python 作业 第28章
============= CH28 homework ============
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
Answer: B 由于’\’无法识别
1 打开一个文件我们使用open()函数, 通过设置文件的打开模式, 决定打开的文件具有哪些性质, 请问默认的打开模式是什么呢?
Answer: f = open(”, ‘rt’)
2 请问 >>>open(‘E:\Test.bin’, ‘xb’)是以什么样的模式打开文件的?
Answer: 可写入的二进制模式
‘x’ 如果文件已经存在,使用此模式打开将会引发异常
‘b’ 以二进制模式打开文件
3 尽管Python有所谓的垃圾回收机制, 但对于打开了的文件, 再不需要用到的时候我们仍然需要使用f.close()将文件对象关闭, 这是为什么呢?
Answer: 资源被占用, 内存被占用。如果不close(), 那就要等到垃圾回收时, 自动释放资源.垃圾回收的时机是不确定的, 也无法控制的.
垃圾收集机制, 会在文件对象的引用计数降至0时自动关闭文件, 所以在Python的编程里, 如果忘记关闭文件并不会造成内存泄露那么危险。 但是如果你对文件进行了写入操作, 那么你应该在完成后关闭文件。因为Python可能会缓存你写入的数据, 如果断电那就会丢失数据。
4 如何将一个文件对象(f)中的数据存放在列表中?
Answer:
# 如果是单行
list(open('xx', 'r'))
# 如果是多行
f = open('xx')
list1 = []
for each in f:if each != '\n':list1.append(each)else:continue
5 如何迭代打印文件对象(f)中的每一行数据?
Answer:
f = open('xx.txt')
list1 = []
for each in f:if each != '\n':list1.append(each)else:continue
6 文件对象的内置方法 f.read([size = -1]) 作用是读取文件对象内容, size参数是可选的, 那如果设置了size = 10, f.read(10), 将返回什么内容呢?
Answer: 返回f从文件指针开始的连续10个’字符’
7 如何获取文件对象(f)当前文件指针位置?
Answer: f.tell()
8 还是视频中的那个掩饰文件(record.txt), 请问为何f.seek(45, 0)不会出错,但f.seek(46)就出错了呢?
>>>f.seek(46)
46
>>>f.readline()
Traceback (most recent call last):File "<pyshell#18>", line 1, in <module>f.readline()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xe3 in position 4: illegal multibyte sequence
Answer: 因为使用f.seek()定位的文件指针是按字节为单位进行计算的, 演示文件(record.txt)是以GBK进行编码的, 按照规则一个汉字需要占用两个字节, f.seek(45)的位置位于字符”小”的开始位置, 因此可以正常打印, 而 f.seek(46)的位置刚好位于字符”小”的中间位置, 因此按照GBK编码的形式无法将其解码。
Practice
0 尝试将文件(CCTV.mp3)打印到屏幕上?
# 这里自己用网易云下载的一首歌,然后打开就是一堆码
f = open('D:\\Learn\\Python project\\CH28 homework\\CCTV.mp3','rb')
for each in f:print(each, end = ' ')
f.close()
1 编写代码,将上一题中的文件(CCTV.MP3), 保存为新文件(CCTV.txt)
# Test 1~20
f1 = open('D:\\Learn\\Python project\\CH28 homework\\CCTV.mp3','rb')
f2 = open('D:\\Learn\\Python project\\CH28 homework\\CCTV.txt','x')
f2.write(str(f.read(20)))
f2.close()
f1.close()
零基础学习Python 作业 第28章相关推荐
- 零基础学习Python 作业 第22章
x**============ CH22 homework ============** 0 递归在编程的形式上是如何表现的呢? Answer: 函数本身不断迭代调用自身 1 递归必须满足哪两个基本条 ...
- 零基础学习Python 作业 第14章
==========CH14 homework========== 0 还记得如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)? Answer: '\', '()', "' cod ...
- Python001 【零基础学习Python】前言及第1/2章
摘自[零基础学习Python]一书 小甲鱼编著 敲黑板 划重点啦:理解为主,应用为王 前言 其实很早之前就接触到了Python,只是当时自己并未太多关注.真的是很早很早之前啦.就在[Java编程思想] ...
- python基础代码事例-零基础学习Python开发练习100题实例(2)
零基础学习Python开发练习100题实例(2) 2018-02-26 13:11:39 1934浏览 11.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个 ...
- python教学视频k_GitHub - y000k/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
PythonShare Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐 本文 主要 针对 零基础 想学习Python者.本文本文由@史江歌(shijiangg ...
- python入门教材论坛_Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
PythonShare ============= *Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐* ------------------------ 本文 ...
- python入门教材论坛_GitHub - aisuhua/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
PythonShare Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐 本文 主要 针对 零基础 想学习Python者.本文本文由@史江歌(shijiangg ...
- [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程
参考链接: 在Python中创建代理Web服务器 2 Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python We ...
- python零基础自学英语软件下载_GitHub - geniux-TI/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
PythonShare Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐 本文 主要 针对 零基础 想学习Python者.本文本文由@史江歌(shijiangg ...
最新文章
- 网站社区类产品管理经验
- Undefined、Null区别渗透
- mysql错误:this authentication plugin is not supported
- ECMAScript 6入门 - 变量的解构赋值
- ES6学习笔记(二十二)ArrayBuffer
- IOT(7)---物联网平台架构设计
- python入门经典100例-Python3经典100例(Python3入门习题) 含答案 doc版
- php怎么重命名文件,phpstorm如何进行文件或者文件夹重命名
- Atitit 常见每日流程日程日常工作.docx v7 r8f
- Python functools模块之cmp_to_key
- 2021年《初级会计实务》考试真题资产部分
- 卡尔曼滤波原理介绍及算法实现
- 计算机网络中数据传输速率的单位是什么,计算机网络中传输介质传输速率的单位是用什么表示...
- 奋斗吧,程序员——第八章 衣带渐宽终不悔,为伊消得人憔悴
- java 逃逸_Java 逃逸分析
- 有道智选-网易效果推广
- 在群晖上搭建基于 PostgreSQL 的 Joplin Server
- 计算机术语dump是什么意思?
- 基于egret的小游戏——拼图
- mac设计师系列 Adobe “全家桶” 15款设计软件 值得收藏!
热门文章
- 如何查看浏览器已经记录的密码
- Jackson对泛型的序列化和反序列化方法汇总
- supercharge快充_华为Mate 10超级快充SuperCharge那些事儿
- php有意思的小项目,推荐6个Github上超有意思的前端项目!
- JS:二分搜索(3)—— 子序列、信封嵌套、阶乘数的0
- 基础概念之电路板的概念
- C++ 模板特化与偏特化
- python 学术文献下载_PyHubWeekly | 第二十六期:一款开源免费的学术论文下载工具...
- 推荐10个AI人工智能技术网站
- 《人工智能》之《机器学习》