Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数
2016-01-16 22:47
1006 查看
python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作:
一:使用内置open()函数操作文件,基本语法如下:
以下是文件打开时的模式,不同打开模式有不同的操作方法:
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+:打开一个文件用于读写,文件指针将会放在文件的开头,此方法适用于在开头增加数据,如果要在末位添加数据本方法不适合,。
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
rb+: 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
r打开方式总结:无论是是以r还是r+还是rb打开文件,指针都在文件的开头,r+可以读写文件,rb+以二进只读写方式打开文件
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w打开文件方式总结:w方式可以读写文件,如果文件不存在都会创建,但是如果文件存在则会覆盖原文件内容,指针会在文件首部,因此不适用于操作有数据的文件。
a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入,a不能读文件
ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写,a与a+的区别是a不能读只能追加,a+可以读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
a打开文件总结:a用于在末位追加,但是不能读,ab以二进制操作,a+可以读写,如果见不存在就创建,存在则将指针放在末位,ab+出使用二进制以外同a,凡是操作加上+都可以读写。
r+U:在读文件的时候只以 \n 做换行符,U只能和r搭配使用,其他环境不能使用
二:open()内置函数的常用方法:
以下方法基于python2.7.10,python3大同小异:
假如有个文件,内容如下:
1.readline(self,size=None):一次读取一行数据到内存,如果要读取多行需要配合next()方法:
通过给函数传递参数发送邮件
一:使用内置open()函数操作文件,基本语法如下:
with open("test.log","r") as f: #文件的打开模式为只读r a = f.readlines() #一次读取文件的所有行放入内存 print(a) #显示读取到的文件全部内容 print(type(a)) #显示读到的文件内容是列表,也就是要多读取到的内容做操作,需要使用列表的操作方法 #with语句会自动关闭文件,因此不需要使用f.close来关闭文件了
以下是文件打开时的模式,不同打开模式有不同的操作方法:
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+:打开一个文件用于读写,文件指针将会放在文件的开头,此方法适用于在开头增加数据,如果要在末位添加数据本方法不适合,。
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
rb+: 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
r打开方式总结:无论是是以r还是r+还是rb打开文件,指针都在文件的开头,r+可以读写文件,rb+以二进只读写方式打开文件
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w打开文件方式总结:w方式可以读写文件,如果文件不存在都会创建,但是如果文件存在则会覆盖原文件内容,指针会在文件首部,因此不适用于操作有数据的文件。
a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入,a不能读文件
ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写,a与a+的区别是a不能读只能追加,a+可以读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
a打开文件总结:a用于在末位追加,但是不能读,ab以二进制操作,a+可以读写,如果见不存在就创建,存在则将指针放在末位,ab+出使用二进制以外同a,凡是操作加上+都可以读写。
r+U:在读文件的时候只以 \n 做换行符,U只能和r搭配使用,其他环境不能使用
二:open()内置函数的常用方法:
以下方法基于python2.7.10,python3大同小异:
假如有个文件,内容如下:
你好! !nihao !你好 现在使用open()函数的方法来操作打开此文件:
1.readline(self,size=None):一次读取一行数据到内存,如果要读取多行需要配合next()方法:
1 import smtplib 2 from email.mime.text import MIMEText 3 from email.utils import formataddr 4 5 def mail(user): 6 ret = True 7 try: 8 msg = MIMEText('邮件内容', 'plain', 'utf-8') 9 msg['From'] = formataddr(["张士杰",'rooroot@126.com']) 10 msg['To'] = formataddr(["测试邮件",'1669121886@qq.com']) 11 msg['Subject'] = "主题" 12 13 server = smtplib.SMTP("smtp.126.com", 25) 14 server.login("rooroot@126.com", "login password") 15 server.sendmail('rooroot@126.com', [user,], msg.as_string()) 16 server.quit() 17 return ret 18 except Exception: 19 ret = Flase 20 21 ret = mail("1669121886@qq.com") 22 if ret: 23 print("发送成功") 24 else: 25 print("发送失败") 26 27 28 执行结果: 29 发送成功
通过给函数传递参数发送邮件
相关文章推荐
- python的tab自动补全
- Python 4.1 类和实例
- Python正则表达式
- python 函数重载
- python tkinter 实现简单计算器2
- [Leetcode]30. Substring with Concatenation of All Words @python
- 关于python中模块的环状引用(circular imports)
- python 解析 XML文件
- 《笨办法学python》 第14课手记
- 用 Python 做文本挖掘的流程
- Debian安装python-rrdtool
- HADOOP STREAMING实例HIVE引用PYTHON
- Python新手初学教程
- python编程技巧
- Python 遍历字典——学习笔记
- Python 代码性能优化技巧
- Python 字典——学习笔记
- 【python学习笔记】网页源代码乱码与解压
- python 调试器
- 1.服务器上安装更新的python和代码提示(ipython)的安装