零基础学 Python(2018 版)
尹会生
前游戏公司技术总监,前新浪网技术经理
80146 人已学习
新⼈⾸单¥68
课程目录
已完结/共 72 讲
第一章 :Python介绍和安装 (3讲)
第二章 :Python基础语法 (3讲)
第四章 :条件与循环 (5讲)
第五章 :映射与字典 (2讲)
第六章 :文件和输入输出 (2讲)
第七章 :错误和异常 (1讲)
第九章 :模块 (1讲)
第十章 :语法规范 (1讲)
第十一章 :面向对象编程 (4讲)
第十二章 :多线程编程 (2讲)
第十六章 :综合案例 & 结课测试 (1讲)
特别放送 (1讲)
零基础学 Python(2018 版)
登录|注册
留言
31
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 19 | 文件的内建函数
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | Python语言的特点
02 | Python的发展历史与版本
03 | Python的安装
04 | Python程序的书写规则
05 | 基础数据类型
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与search的区别
46 | 正则表达式库替换函数sub()的实例
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹操作
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumPy安装
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代码
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式get和post
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链接
68 | Beautiful Soup的安装和使用
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下载图片
强势回归:零基础学Python2022版来啦!
71 | 如何分析源代码并设计合理的代码结构&结课测试
本节摘要

课程源码、课件及课后作业地址:

https://gitee.com/geektime-geekbang/geekbangpython

登录 后留言

全部留言(31)

  • 最新
  • 精选
Cody Yang
请问为什么我在pycharm (python3.6)上写同样的代码就会报错“ f.write('你好') UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)” 如果将代码改成 f = open('name1.txt','wb') f.write('你好'.encode('utf8')) f.close() 就没问题了

作者回复: 这里有两个问题导致报错,第一个报错的原因是在pycharm执行时有可能使用了python2解释器,因为pycharm可以支持多个解释器的。可以在界面下方运行结果上面查看正在使用的解释器。 第二个问题是你在打开文件open()时使用了b参数,在后面对文件写入的时候就必须为f传入一个byte字节类型,而'你好'是string字符串类型,必须使用encode()函数转换成byte类型,write()函数才能接收。

2018-06-11
4
明天
老师,请教一下,open内置函数,因为打开文件,需要返回对象,查看源码,发现没有返回值,只有一个占位符pass,这个怎么理解啊?

作者回复: 内置模块如果需要了解用法可以使用help(open)或者官方文档来查看,因为大部分内置模块并非使用python编写的,而是C语言编写,这里的pass当中它的一个声明,而不是实现即可。 至于使用C语言目的自然是为了提高效率,以Python3.7为例,如果希望了解它的实现可以下载Python源代码\Python-3.7.0\Modules\_io\_iomodule.c 文件包括了io的C语言实现 如果希望了解Python版本的实现可以参考Python-3.7.0\Python-3.7.0\Lib\_pyio.py 37行 def open(file, mode="r", buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None): 但是还要注意的是里面的主要实现FileIO()依然用C语言实现的。 所以在这里不建议大家从最基础内建函数入手,因为会涉及底层C语言和更多的操作系统知识,不利于大家入门,容易打击积极性。 建议先掌握应用逻辑再回头重新掌握操作系统、网络基础、这样学习起来虽然总体时间增加,但是目的性明确。

2018-08-06
2
twoThirds
# 指定文件编码格式 file1 = open('name.txt', 'w', encoding='utf-8') file1.write('诸葛亮') file1.close() # 指定文件编码格式 # file2 = open('name.txt', encoding='utf-8') # print(file2.read()) file3 = open('name.txt', 'a', encoding='utf-8') file3.write('|刘备') file2 = open('name.txt', encoding='utf-8') print(file2.read()) 打印的结果怎么只有诸葛亮,没有刘备啊 代码执行不是从上到下吗

作者回复: file3 = open('name.txt', 'a', encoding='utf-8') file3.write('|刘备') 打开文件之后要关闭 file3.close()

2021-03-21
1
张望
这样可以正常打印—— file2=open("name.txt") print(file2.read()) file2.close() 这样就无法打印—— file2=open("name.txt") file2.read() print(file2.read()) file2.close() 为什么呢???

作者回复: help(file2.read) 可以发现read()会尽可能多的读取文件内容,文件指针会移动到结尾,第二个read不会返回文件开头所以没有读取到任何信息

2019-08-14
1
刘大头
file3 = open('name.txt','a') 'w'为甚么可以用'a'代替,不能用其他b c d代替

作者回复: mode参数有"w"和“a”等多个参数,w表示写入,并先截断文件 a表示写入,如果文件存在则在末尾追加。 参考 https://docs.python.org/zh-cn/3.6/library/functions.html?highlight=open#open

2019-07-07
2
1
hiuchuen
老师您好,我根据您的步骤进行书写,最后在name的文件里面输出的是�����,���这样的

作者回复: 系统的字符集和文件的字符集不匹配,输出出来就是乱码了,尝试搜索引擎搜索一下怎样改变输出的编码,看看能不能搞定你的问题

2019-01-06
2
1
Mikey
请问下老师,在学习完本课程后,操作系统,计算机网络的相关其他基础知识的学习应该怎样进行呢,是从头把C语言捡起来吗?还没有入行,争取尽快入行,希望老师可以给一些学习的建议,总是感觉搜集了很多资料但是 不知道应该看哪个,也不知道恰当的学习顺序。

作者回复: 建议至少补充三点 1 linux的基本操作和操作系统原理,毕竟大部分服务端程序是运行在linux系统环境上的 2 常见的协议 如tcp http ,现在大部分的服务都是cs或bs结构,有必要了解协议的实现 3 根据工作的内容学习相关的知识,如从事web后端开发尝试了解web服务器相关知识,如从事前端开发尝试了解html css js等知识,从事图形开发则去了解gtk,从事深度学习了解tensorflow等等,根据不同工种积累该项工作的技术栈

2018-09-25
1
老万
老师您好,开发初学者一枚,根据课程内容,我自己练习了几行代码,file1 = open('name.txt','w') file1.write('张飞,诸葛亮') file1.close() file2 = open('name.txt',mode = 'a') file2.write(',刘备') file2.close() file3 = open('name.txt','r+') file3.write('\n' + '关羽') file3.write('\n' + '魏延') file3.write('\n' + '关羽') file3.write('\n' + '魏延') file3.close() 执行结果中,我第一行写入的张飞、诸葛亮、刘备,没有了,成为了空行,这是什么原因呀?

作者回复: open('name.txt','r+') 打开的模式r+ 导致了最终结果和你期望不同

2020-05-28
zealer
保存的文件内容全部都是问号 乱码了 如何解决?

作者回复: 文件编码问题,help(open) 关注一下enconding参数

2020-02-19
2
xiao
为什么我执行seek(2,1),从当前位置往后移动两位,总是报错呢?

作者回复: 检查一下open() 打开文件的方式, 如果非binary方式,是不支持seek(2,1)这种用法的

2019-12-14
收起评论