参考书籍:《Learning_Python_5th_Edition.pdf》,一本英文书呢,我上传到百度网盘吧,请点击这里,密码是:kym3
文本文件的输入输出
Python具有基本的文本文件读写功能。Python的标准库提供有更丰富的读写功能。
文本文件的读写主要通过open()所构建的文件对象来实现。
· 创建文件对象
打开一个文件,并使用一个对象来表示该文件:
f = open(文件名,模式)
最常用的模式有:
"r" # 只读
“w” # 写入
如
>>>f = open("test.txt","r")
· 文件对象的方法
读取:
content = f.read(N) # 读取N bytes的数据
content = f.readline() # 读取一行
content = f.readlines() # 读取所有行,储存在列表中,每个元素是一行。
写入:
f.write('I like apple') # 将'I like apple'写入文件
关闭文件:
f.close()
模块
之前看到的函数和对象,从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用。
模块(module)也是为了同样的目的。在Python中,一个.py文件就构成一个模块。通过模块,可以调用其它文件中的程序。
· 引入模块
先写一个first.py文件,内容如下:
def laugh():
print('HaHaHaHa')
再写一个second.py,并引入first中的程序:
import first
for i in range(10):
first.laugh()
在second.py中,就使用了first.py中定义的laugh()函数。
引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。上面例子中,first为引入的模块,laugh()是我们所引入的对象。
Python中还有其它的引入方式,
import a as b # 引入模块a,并将模块a重命名为b
from a import function1 # 从模块a中引入function1对象。调用a中对象时,我们不用再说明模块,即直接使用function1,而不是a.function1
from a import * # 从模块a中引入所有对象。调用a中对象时,我们不用再说明模块,即直接使用对象,而不是a.对象
这些引用方式,可以方便后面的程序书写。
· 搜索路径
Python会在以下路径中搜索它想要寻找的模块:
· 程序所在的文件夹
· 标准库的安装路径
· 操作系统环境变量PYTHONPATH所包含的路径
如果有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。
· 模块包
可以将功能相似的模块放在同一个文件夹(比如说this_dir)中,构成一个模块包。通过
import this_dir.module
引入this_dir文件夹中的module模块。
该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。__init__.py可以是一个空文件。
运行f.py的几种方法
interactive prompt, icon clicks, IDLE menu options, system command lines, import and reload, using exec\eval\compile, ...
总结
f = open(name, "r")
line = f.readline()
f.write('abc')
f.close()
import module
module.object
__init__.py