1、,Introduction to Pytion(Python 入门),变量保存,Pickle=pickle.dumps, pickle.loads()Json=json.dumps, json.loads(in_json)Str()+eval,Python快速入门,文件操作,文件操作:open() file() readlines() close()handle = open(file_name, access_mode = r) # 默认 r# r:读取;w:写入;a:添加;+:读写;b:二进制访问。filename = raw_input(u请输入文件名:.encode(“gbk”)hFi
2、le = file(filename, r)for nLine in hFile: print nLine,hFile.close() # close()是文件对象hfile的一个属性# 属性可以是数据值,也可以是函数和方法,类、模块、文件和复数等都有属性。# 本示例适用于较小的文件,否则占用内存太大。,Python快速入门,文件读写,Python快速入门,http:/ = open(test.txt,w)关于open 模式:w以写方式打开,a以追加模式打开 (从 EOF 开始, 必要时创建新文件)r+以读写模式打开w+以读写模式打开 (参见 w )a+以读写模式打开 (参见 a )rb以二进
3、制读模式打开wb以二进制写模式打开 (参见 w )ab以二进制追加模式打开 (参见 a )rb+以二进制读写模式打开 (参见 r+ )wb+以二进制读写模式打开 (参见 w+ )ab+以二进制读写模式打开 (参见 a+ )b:二进制 a追加 r 读, w 写,文件读写,Python快速入门,http:/ line in open(test.txt):print line写:f=open(“text.txt”,w) f.write(str) f.write(lists) f.close(),文件编码,Python快速入门,由来: unicode(国际) http:/ gbk(windows) 读
4、不会改变编码(python2)读会转化为unicode(python3)输出: unicode 不乱码, 命令行(gbk) eclipse: (utf-8)不匹配: decode,encodeUtf-8 unicode(前面+u) gbk,解码,解码,编码,编码,Python3 为什么不乱码?,文本/二进制,Python快速入门,0结尾,eof结尾,rb,repr,相对路径,Python快速入门,相对路径 ret.txt,绝对路径 C:Userswangworkspace2017.7.12017.7.1,绝对路径,工作路径,相对路径,Os.getcwd,文件遍历,Python快速入门,Os.l
5、istdir,Os.walk(所有子目录),xml文件,Python快速入门,Elementtree,读取,修改,写入,Excel文件,Python快速入门,pywin32,xlrd,xlwt,xlutils,缩进,while循环语句,if条件语句,循环语句:whilewhile expression: # expression 条件表达式 while_suite # 根据条件循环执行的语句条件语句:if elif elseif expression1: # 蓝色部分可以单独用 if_suiteelif expression2: # 绿色部分可以省略,也可以重复多个 elif_suiteels
6、e expression3: # 用elif,最后必须有else else_suite # Python没有switch-case,Python快速入门,for循环语句,循环语句:for range()内建函数Python中的for循环与传统的for循环不太一样,不是计数循环,更像迭代循环,如:for nItem in 123, email, homework: print nItemfor nItem in range(5): # range(5)等价于1, 2, 3, 4, 5 print nItem, # print不自动换行方法:加逗号for nChar in myString: #
7、myString = abc print nCharfor i in range(len(myString): # len() 字符串长度 print (%d) % (i), myStringi # 输出:(0) a ,Python快速入门,for循环语句,循环语句:for enumerate()内建函数# enumerate()突破约束:索引、元素双循环for i, nChar in enumerate(myString): print (%d) % (i), myStringi列表解析:for语句squared = item * 2 for item in range(5)# 0 1 4
8、9 16 complexTuple = (item * 2 for item in range(10) if item % 2)# 1 9 25 49 81,Python快速入门,Del continue break,Python快速入门,函数,函数:def function_name(arguments): # 参数可为空,可有默认值 “optional documentation string” # 可选的函数说明语句 function_suite # 函数代码段 return fun_obj # 可以没有,自动返回None对象def addMeToMe(me): # 函数示例:神奇的 +
9、 操作 return (me + me) # 小括号不能省略print addMeToMe(3.14) # 6.28print addMeToMe(100) # 200print addMeToMe(Python) # PythonPythonprint addMeToMe(-1, abc) # -1, abc, -1, abc,Python快速入门,函数参数,Python快速入门,默认,命名,可变参数(列表),可变参数(字典),函数传递,返回值(0-多个),内置函数,类,模块,类:相关数据及逻辑的容器,构建创建真实对象的蓝图。class className(baseClasses): “op
10、tional documentation string” # 说明性文字(可选) static_member_declarations # 静态成员定义 method_declarations # 方法定义模块:一种组织形式,将有联系的代码组织到独立文件中# 模块可以包含可执行代码、函数和类。import sys # 导入方法,sys为模块名称sys.stdout.write(Hello world!)sys.platform # win32sys.version # 2.6.5 (r265:79096,Python快速入门,类,Python快速入门,定义(),属性+方法,继承,多态,_dict_,getattr,模块,Python快速入门,import,Sys模块,一个文件就是一个模块,包(_init_.py),Sys.path,dir(sys.modules.get(_builtin_)sys.modules.get(_builtin_)._dict_.keys(),Import 如何回避重复sys.modules.keys(),Thank you !,Questions & Answers,