一、文件
f= open('this.txt','w'),open函数会返回一个文件对象,该对象提供了各种操作文件的方法,包括写入-write( )等等
但是write仅仅接受的是字符串。此时有以下几种方法:
(1)强制转换类型,例如用str( )函数,强制化为字符串
(2)格式化输出,%为关键。比如
>>> 'In %d years I have spotted %g %s.' % (3, 0.1, 'camels')
'In 3 years I have spotted 0.1 camels.'
格式化输出多个时,切记后面要用元组封装起来。并且需要格式化的个数与元组的元素个数必须相等。
(3)format 美观格式化输出:
>>> "The sum of 1 + 2 is {0}".format(1+2)
'The sum of 1 + 2 is 3'
注意大括号内索引的使用format( )的参数是严格按照顺序的,前面格式化的部分,默认是依次来放入值的,但是你也可以认为的设置顺序来达到自己的目的。
二、管理路径的os os.path(当然两者都是通过import os来使用的)
三、管道
大多数操作系统提供了一个命令行的借口,也被称为shell。任何可以在shell中启动的程序,也可以在python中通过使用管道对象(pipe object)来启动。
>>> cmd = 'ls -l'
>>> fp = os.popen(cmd)
返回值是一个行为类似于已经打开文件的对象。可以使用 readline来从ls的进程的输出中读取一行,或者用read读取所有内容。
res = fp.read()
当然最后需要关闭。
>>> stat = fp.close()
>>> print(stat)
None
返回值是 ls
进程的最终状态。None
表示正常结束(没有出现错误)。
四、制作模块
作为模块的程序通常写成以下结构:
if __name__ == '__main__':
print(linecount('wc.py'))
__name__
是一个在程序开始时设置好的内建变量。 如果程序以脚本的形式运行,__name__
的值为 __main__
,这时其中的代码将被执行。否则当被作为模块导入时,其中的代码将被跳过。
是的,这里的__name__是一个变量,所以才没有被双引号括起来,但是__main__是一个字符串,而不是变量,所以要有双引号。
我们做个练习,将例子输入到文件 wc.py
中,然后以脚本形式运行它。 接着,打开 Python 解释器并导入 wc
。当模块被导入后, __name__
的值是什么?
警示:如果你导入一个已经被导入了的模块,Python 将不会做任何事情。它并不会重新读取文件,即使文件的内容已经发生了改变。
如果你要重载一个模块,可以使用内建函数 reload
,但它可能会出错。因此最安全的方法是重启解释器,然后重新导入模块。