python 函数初识和文件操作
文件操作
打开文件:文件句柄 = open('文件路径', '模式')
w #以写的方式打开 (不可读,不存在则创建,存在则删除内容)
a #以追加的模式打开(可读, 不存在则创建,存在则追加内容)
r #以只读模式打开
"+" 表示可以同时读写某个文件
r+ #以读写的模式打开
w+ #以读写的模式打开
a+ #以读写的模式打开 "b”表示处理二进制文件
rb #以二进制模式读打开
wb #以二进制写模式打开
ab #以二进制追加模式打开 rb+ #以二进制读写模式打开
wb+ #以二进制读写模式打开
ab+ #以二进制读写模式打开 "U" 表示在读取时,可以将\r \n \r\n 自动转换成\n (与r或者r+模式相同)
rU
r+U3
fp = open("test.txt",w)
fp.close #关闭文件, 养成习惯,打开文件,用完后,记得关闭,否则有可能报ValueError
fp.fileno #返回一个文件描述符,使用底层的操作请求系统 I/O操作
fp.flush #刷新文件内容缓冲区
fp.isatty #文件是否是一个终端设备文件(unix系统中的)
fp.next #获取下一行的数据,不 存在则报错 。 for i in file: print i.strip() 就是调用这个next()方法
fp.read([size]) #读取指定字节数的数据 以byte 为单位
fp.readline([size]) #读一行,如果定义了size ,有可能返回一行中的部分
fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。内部还是调用readline()方法
fp.seek(offset[,whence]) #将文件操作移动到offset的位置,这个offset一般相对文件的开头开计算的,一般为整数,
#0 从头开始计算
#1 从当前位置开始计算
#2 从未见末尾开始计算
fp.tell #告诉文件操作的当前位置 ,从开头开始计算
fp.truncate #把文件裁成规定的大小,默认是裁到当前文件操作标记的位置
fp.write #往文件里面写内容
fp.writelines #将一个字符串列表写入文件
fp.closed #关闭文件
fp.encoding
fp.errors
fp.mode
fp.name
fp.newlines
fp.softspace
with 应用
with open("log.txt","r") as f: #只读的方式打开文件,alias 为f
for line in f:
print line #打印每一行
#执行完成后内部会自动关闭并释放文件资源
with open("log1.txt") as obj1 , open("log2.txt") as obj2: #可以进行复制的操作
for line in obj1:
obj2.write(line)
python每行读取文件几种姿势
#1 ,readline
file = open("a.log","r")
whileTrue:
line = file.readline()
if not line:
break
pass
#2 ,fileinput
import fileinput
file = open("a.log","r")
for line in fileinput.input("a.log"):
pass #3 ,readlines
file = open("a.log","r")
whileTrue:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass
#4 ,for循环
file = open("a.log","r") # 相当于with open("a.log","r") as f:
# for line in f:
for line in file: # pass
pass #5 ,xreadlines
file = open("a.log","r") #已经废弃
for line in file.xreadlines():
pass
自定义函数
whileTrue:
if cpu利用率> 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 if 硬盘使用空间> 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 if 内存占用> 80%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接看一下上面的代码 ,可以将if 语句内容提取出来公用,如下:
def 发送邮件(内容)
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 while True: if cpu利用率> 90%:
发送邮件('CPU报警') if 硬盘使用空间> 90%:
发送邮件('硬盘报警') if 内存占用> 80%:
发送邮件("内存报警")
函数的定义和使用
def foo(args):
print "hello,world!"
return args
ret = foo(name)
print ret

函数的参数
def 发送邮件(邮件内容) #邮件内容为参数
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
whileTrue:
if cpu利用率>90%:
发送邮件("CPU报警了。")
if硬盘使用空间>90%:
发送邮件("硬盘报警了。")
if内存占用>80%:
发送邮件("内存报警了。")
函数中参数的种类
def func(args):
print args
func("budonghsu")

def func(name,age =18):
print "%s : %s"%(name,age)
func("budongshu",19)
func("budongshu") 运行结果:
budongshu :19
budongshu :18

def func(*arg): #可以接收列表,元组 ,字符串
print arg
执行方式一
name =[1,2,3,4]
func(name)
name =("a","b")
func(name)
执行方式二
func("bds",123) 执行结果: #返回的是一个元组
([1, 2, 3, 4],) (('a', 'b'),) ('bds', 123)
def func(**kwargs): #可以接收字典
print kwargs
func(name="bds",age=19) #此方法还可以用来生成字典
dict1 ={'name':"linux",'age':20}
func(**dict1)
运行结果:
{'age':19,'name':'bds'}
{'age':20,'name':'linux'}
def foo(*arg,**kwargs):
print 'arg = ', arg
print 'kwargs =', kwargs
print '-------------------------'
foo(1,2,3,4)
foo(a=1,b=2,c=3)
foo(1,2,3,4,a=1,b=2,c=3)
foo('a',1,None,a=1,b='2',c=3)
运行结果:arg = (1,2,3,4)
kwargs ={}
-------------------------
arg = ()
kwargs ={'a':1,'c':3,'b':2}
-------------------------
arg = (1,2,3,4)
kwargs ={'a':1,'c':3,'b':2}
-------------------------
arg = ('a',1,None)
kwargs ={'a':1,'c':3,'b':'2'}
-------------------------
python发邮件


python 函数初识和文件操作的更多相关文章
- python函数基础 与文件操作
函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...
- Python函数定义、文件操作(读写、修改)
date:2018421 day3 一.函数定义 def 函数名(首字母大写) 增加程序可读性 #直接写函数名即可调用函数 #参数 ①.形参 ②.实参 ③.缺省参数 如果有默认值,调用的时候没有传递 ...
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数
1. 集合 1.1 特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...
- Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法
知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- Python基本语法_文件操作_读写函数详解
目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...
- Python基础7:文件操作
[ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...
随机推荐
- [转贴]从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- SPRING IN ACTION 第4版笔记-第三章Advancing wiring-001-DataSource在应用和开发环境之间切换 profile
一. DataSource在应用和开发环境的产生方式不同,可以用srping 的profile管理 Spring’s solution for environment-specific beans i ...
- Multi-bit per cell storage
Memories Scaling 其他的的半导体存储器的制程一般2年为一个升级周期,但是nand flash 存储器的制程升级周期和他们比起来只有1年.这种更快的制程升级导致SLC NAND ...
- Android调用MediaScanner进行新产生的媒体文件扫描
有时候,我们拍了一张图片或录制了一段视频,图库应用默认没有将这些新产生的文件识别出来所以打开图库或视频播放器发现没有找到这些文件,需要调用MediaScanner扫描一下才会出来.从FFMPEG中找了 ...
- AD认证
这两天接触到一个新的知识点,AD验证.什么是AD验证?Active Directory——活动目录,活动目录只是LDAP的一个实现,提供LDAP认证.Radius认证和NTML认证,都是标准认证方式 ...
- Node.js权威指南 (12) - Node.js中的其他模块
12.1 使用dns模块解析域名 / 313 12.1.1 使用resolve方法将域名解析为DNS记录 / 313 12.1.2 使用lookup方法查询IP地址 / 315 12.1.3 使用re ...
- 在 SharePoint 2010 中访问数据
转:http://blog.banysky.net/?p=81001 数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用 LINQ ...
- visual studio 资源视图 空白 解决方案
visual studio 资源视图打开后显示空白的解决方案步骤: 在解决方案view下,右键点击工程 1 unload projects 完成第一步后仍然在解决方案view下,右键点击工程 2 re ...
- numpy note_1
tile(A,reps) 通过重复 reps次数的A 创建一个数组 examples: >>> a = np.array([0, 1, 2]) >>> np.til ...
- python爬虫学习(2)__抓取糗百段子,与存入mysql数据库
import pymysql import requests from bs4 import BeautifulSoup#pymysql链接数据库 conn=pymysql.connect(host= ...