模块
将一些定义的函数方法和变量存放在py文件中,为一些脚本或交互式的解释器使用,那么这个文件就是模块。 模块是一个包含所有定义的函数和变量的文件,后缀名为py。模块可以被其它程序引入,利用 import 语句。
import module1
from modname import name1
from modname import *
模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。 每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用。
__name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。 每个模块都有一个__name__属性,当其值是’main’时,表明该模块自身在运行,否则是被引入。
dir() 函数
内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回: 如果没有给定参数,那么 dir() 函数会罗列出当前定义的所有名称
输入输出
python输出
python两种输出值的方式:表达式语句和print()函数。 另外,利用sys.stdout.write(),标准输出文件。 str.format()可以格式化输出 str.format():利用{}和:来标准化输出
'my name is {} ,age {}'.format('hoho',18)
'my name is {1} ,age {0}'.format(10,'hoho')
'my name is {1} ,age {0} {1}'.format(10,'hoho')
li = ['hoho',18]
'my name is {} ,age {}'.format(*li)
'my name is {name},age is {age}'.format(name='hoho',age=19)
hash = {'name':'hoho','age':18}
'my name is {name},age is {age}'.format(**hash)
print('站点列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao'))
'{0:*>10}'.format(5)
'{0:*<10}'.format(5)
'{0:*^10}'.format(5)
'{0:.2f}'.format(1/3)
'{0:d}'.format(10)
'{0:b}'.format(10)
'{0:o}'.format(10)
'{0:x}'.format(10)
'{:,}'.format(12369132698)
'{:.2%}'.format(0.333)
li = ['hoho', 18]
'name is {0[0]} age is {0[1]}'.format(li)
python输入
python利用内置函数 input() 读入一行输入文本 通过导入 sys库,利用sys.stdin.readline()标准化输入
python读写文件
open()返回一个file对象open(filename, mode) filename:包含了你要访问的文件名称的字符串值。 mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读?。 mode类型: r : 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb: 以二进制格式打开一个文件用于只读,文件指针将放在文件的开头 r+:打开一个文件用于读写,文件指针放在文件开头 rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 a+: 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ab+: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
f = open("./tmp/foo.txt", "w")
f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
f.close()
f = open("./tmp/foo.txt", "r")
str = f.read()
f.close()
f.readline()
f.readlines()
f.tell()
f.seek(offset, from_what)
f.close()
open()和 with open() 的区别
f = open(file_name, 'r')
for line in f:
print(line)
f.close()
文件不存在时,open()函数会抛出一个 IOErroe错误。 文件使用完毕后,必须利用.close()关闭文件,否则文件会一直占用系统资源,导致溢出。 由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,可以使用try … finally来实现:
f = open(file_name, 'r')
try:
for line in f:
print(line)
except:
print("IOError")
finally:
f.close()
python引入 with语句自动调用close方法 with创建临时运行环境,即with用于创建一个临时的运行环境,运行环境中的代码执行完后自动安全退出环境。
with open(file_name, "r") as f:
print(f.read())
with的作用相当于之前的try … finally,但代码更加简洁
pickle模块
python中pickle模块实现了 基本数据的序列化和反序列化。 pickle序列化操作:程序中运行的对象信息保存到文件中去,永久存储。 pickle反序列化操作:从文件中创建上一次程序保存的对象。
pickle.dump(obj, open(file_name, "w"))
x = pickle.load(file)
|