Head First Python学习笔记2——文件与异常
2015-09-24 17:39
661 查看
文件处理
1.用open()就可以打开文件,但是请注意:文件里有中文请设置编码,如 :open("filepath","r",encoding="utf-8")本书没有说明这个,结果我输出的都是乱码,在网上找了好久才发现解决方法。第二个参数是文件读写模式,详细请看下面
'r' 打开读取文件(默认)
'w' 打开写入文件,会先清除文件内容
'x' 创建一个新文件不打开写入
'a' 如果文件存在,打开写入,并附加到文件末尾
'b' 二进制模式
't' 文本模式(默认)
'+' 打开一个磁盘上的文件并更新(读取和写入)
下面是一个简单的打开文件并读取内容的python代码
2.字符串操作
split()和c#一样可以分离字符串,但是要注意参数是不返回的,比如strA.split(":")返回的字符串列表里没有:这点要注意,还有一个缺省参数用于指定分离成几个,默认是-1即有多少分离多少,比如是strA.split(":",1)则无论字符串里有多少个:都只会分裂成两个字符串,返回值是列表,可以直接a=strA.split(":")也可以(a,b)=strA.split(":"),一般情况下我建议前一种,除非你用strA.split(":",1)确定分离的数量,还有一点要注意,split返回的是用小括号包围的列表,即不可变列表,也称作元组(tuple)。而中括号包围的列表是可变列表。
find()有点类似c#里的indexOf,查询匹配项并返回下标,python里也有index()但是index()在找不到匹配项会报异常,而find()则返回-1,所以一般建议使用find,可以用参数指定查询范围,如strA.find(":",0,10)查询下标0至9的字符匹配,范围包含左边不含右边,记住哦。
还有一些函数就不一一细说了,如果有其他语言的编程经验,或者英语非常好的话,很多函数一看名称就知道是干什么的了,比如append()我不知道也没有这个单词,但我知道这一般是在最后附加,等等。这些东西还是要慢慢积累,不是一两本书就能说的完的。
Ps:写博客也是一门技术活啊,这篇文章写完一看,感觉没什么用,而且断断续续的写了快一下午。真是佩服那些大神。
1.用open()就可以打开文件,但是请注意:文件里有中文请设置编码,如 :open("filepath","r",encoding="utf-8")本书没有说明这个,结果我输出的都是乱码,在网上找了好久才发现解决方法。第二个参数是文件读写模式,详细请看下面
'r' 打开读取文件(默认)
'w' 打开写入文件,会先清除文件内容
'x' 创建一个新文件不打开写入
'a' 如果文件存在,打开写入,并附加到文件末尾
'b' 二进制模式
't' 文本模式(默认)
'+' 打开一个磁盘上的文件并更新(读取和写入)
下面是一个简单的打开文件并读取内容的python代码
# 自python3开始默认使用unicode保存代码文件,所以可以直接在代码里使用中文,如果是python2.x记得设置编码 # 导入os库 import os os.chdir("workpath") # 切换工作目录 os.getcwd() # 查看当前工作目录 path = "新建文本文档.txt" # 如果没有切换工作目录,这里就要用绝对路径 data = open(path, "r", encoding="utf-8") # 用utf-8格式打开文件,如果有中文请一定要指明编码格式,目前我看到的中文博客里基本都会提到中文编码的坑,前辈们的血泪教训一定不能忘啊 # 循环读取文件内容 for line in data: try: # 异常处理 print(line, end="") # end=""是去掉换行符号 except IOError as ie: #as 也可以用于赋值 print(str(ie)) #str() 用于转换成字符串,相当于c#里的ToString() pass # pass就是pass拉 data.seek(0) # seek用于退回到起始位置(其实根据参数可以跳到指定位置,但0算是用的最多的) data.close() # 一定要记得关闭
2.字符串操作
split()和c#一样可以分离字符串,但是要注意参数是不返回的,比如strA.split(":")返回的字符串列表里没有:这点要注意,还有一个缺省参数用于指定分离成几个,默认是-1即有多少分离多少,比如是strA.split(":",1)则无论字符串里有多少个:都只会分裂成两个字符串,返回值是列表,可以直接a=strA.split(":")也可以(a,b)=strA.split(":"),一般情况下我建议前一种,除非你用strA.split(":",1)确定分离的数量,还有一点要注意,split返回的是用小括号包围的列表,即不可变列表,也称作元组(tuple)。而中括号包围的列表是可变列表。
find()有点类似c#里的indexOf,查询匹配项并返回下标,python里也有index()但是index()在找不到匹配项会报异常,而find()则返回-1,所以一般建议使用find,可以用参数指定查询范围,如strA.find(":",0,10)查询下标0至9的字符匹配,范围包含左边不含右边,记住哦。
还有一些函数就不一一细说了,如果有其他语言的编程经验,或者英语非常好的话,很多函数一看名称就知道是干什么的了,比如append()我不知道也没有这个单词,但我知道这一般是在最后附加,等等。这些东西还是要慢慢积累,不是一两本书就能说的完的。
Ps:写博客也是一门技术活啊,这篇文章写完一看,感觉没什么用,而且断断续续的写了快一下午。真是佩服那些大神。
相关文章推荐
- <think python>一些练习的答案
- Python操作PDF与Tiff文件
- Python Map 并行
- Create a simple REST web service with Python--转载
- python模块imghdr读图片后缀名
- 初学python
- 使用python 的paramiko制作堡垒机
- python matplotlib模块——绘制三维图形、三维数据散点图
- Python 3 抓取网页资源的 N 种方法
- 你可能不知道的python
- Python程序提示SyntaxError: invalid syntax错误
- Python爬取百度贴吧图片
- python:列表推导式,list comprehension
- python处理json
- [LeetCode]题解(python):018-4Sum
- Python 通过print_lol将数据保存到文件中
- python socket编程之select
- Json概述以及python对json的相关操作
- Python快速入门
- head first python读书笔记(十一)