1、把python脚本的输出定向到一个文件中,以备以后使用或查看
python script1.py > saveit.txt
2、UNIX风格可执行脚本:#!
在类UNIX系统上使用python可以将python代码编程为可执行程序,这种脚本称为可执行脚本。其为具备了两个特殊属性的、包含了python语句的一般文本文件。
属性1:脚本第一行往往以#!开始(常常叫作“hash bang”或“shebang”),其后紧接着机器的python解释器路径。
属性2:拥有执行权限。
UNIX系统上,往往可以使用chmod+x file.py
来实现这样的目的,之后可以使用./file
来运行该文件
3、在一些UNIX系统上可以避免在脚本文件中硬编码python解释器的路径
只需要在第一行注释中写:
#!/usr/bin/env python
这样编写代码的时候,env程序可以通过系统的搜索路径的设置定位python解释器(在绝大多数的UNIX shell中,通过搜索PATH环境变量中罗列出的所有目录),使代码更具可移植性。当脚本移动到新的位置时,只需要更新PATH,而不是全部脚本。
4、每一个以扩展名.py结尾的python源代码文件都是一个模块
不需要任何特殊的代码或语法来使文件成为模块
其他文件可以通过导入一个模块来读取这个模块定义的内容。
第一次导入之后,其他倒入都不会再工作
导入是一个开销很大的操作。
from与import很相似,from是复制了模块的属性,以便属性能够成为接受者的直接变量。
import myfile
myfile.title
from myfile import title
title
5、使用dir()函数来获得模块内部的可用的全部变量名的列表
6、每个模块文件是一个变量包(命名空间)。
模块实现了python竭尽全力将变量打包以避免名称冲突的愿望。
7、内嵌函数
str():将数字转换成字符串
len():获得字符串的长度
zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
sorted():对各种对象类型排序
open(): 用于打开一个文件,创建一个 file 对象
8、常用模块
math模块:包含了高级的数学工具,如函数
random模块:随机数生成模块
re模块:匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的
time和timeit模块:测试代码速度运行时间和速度
profile模块:分离性能瓶颈
struct模块:可以同时创建和解析打包过的二进制数据
9、特定类型的方法
可以使用dir()函数了解对象的所有属性和方法。dir()函数简单的给出了方法的名称,可以使用help()函数查询方法的作用。
s="abcde"
dir(s)
help(s.replace)
dir()和help()可作用于实际的对象或一种数据类型
①字符串
find()方法:返回一个传入字符串的偏移量
replace()方法:把字符串中的旧字符串替换成新字符串
split()方法:通过指定分隔符对字符串进行切片
rstrip()方法:删除字符串末尾的指定字符(默认为空格)
②列表
append()方法:在列表末尾添加新的对象
pop()方法:移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
sort()方法:对原列表进行排序
括号中的推导语法也可以用来创建产生所需结果的生成器
③字典
dict():创建字典
bob1=dict(name=‘Bob’, job='dev', age=40)
bob2=dict(zip([‘name’,'job','age'],['Bob','dev', 40]))
keys():收集一个键的集合
#根据键排序
D={'a':1,'b':2,'c':3}
Ks=list(D.keys())
Ks.sort()
④元组
只包含一个元素的元组需要以逗号作为结尾
⑤文件
没有特定的字面量语法来创建文件
读取一个文件的最佳方式是根本不读它,而是通过文件的一个迭代器在for循环或其他上下文中自动地逐行读取:
for line in open('data.txt'):
print(line)
⑥二进制字节文件
二进制字节文件在处理多媒体、获取、获取C程序产生的数据等情况下十分有用
⑦Unicode文本文件
Unicode文本文件必须使用codecs.open打开,并且使用特殊的unicode字符串表示内存中的内容
⑧其他类文件工具
管道
先见先出队列(FIFO)
套接字
按键值访问的文件
持久化对象shelve
基于描述的文件
关系型数据库接口
面向对象数据库接口
⑨用户定义的类
class Worker:
def __init__(self,name,pay):
self.name=name
self.pay=pay
def lastName(self):
return self.name.split()[-1]
def giveRaise()
10、生成器(generator)的值并非立即存储在内存中,而是通常通过迭代工具在被请求时生成
11、列表推导和相关的函数编程工具(如map和filter)在某些代码上通常运行得比for循环快
12、