一、文件操作
1,读文件
     在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出,也可以指定每次read读多少字节,例如:
 #coding:utf-8
fn='test1.py'
fp=open(fn,'r') #以读的方式打开文件,文件必须首先存在和,.文件在同一目录下py
print 'reading pos:',fp.tell()
r=fp.read(20) #读取文件内容返回字符串
print 'have read:\"'+r+'\''
print 'reading pos:',fp.tell()
print fp.read()
fp.close()

2,写文件

如果想将某些内容写入文件,可以以'w'写的方式打开文件(如果文件不存在会创建),并且清空文件之前的内容。

 fw='test.txt'
fp=open(fw,'w')
fp.write('www.google.com')
fp.close()
3,读写文件r+,w+
     二者区别在于:r+是必须针对已存在的文件;w+可以创建未存在的文件。
  fn='rplus.txt'
fp=open(fn,'w+')
r=fp.read(12)
print r
fp.close()
4,追加写入文件a
   ‘w'写模式打开的文件只能把内容写入文件,原有内容将被清除,若想保留,则用‘a'追加写模式。
 fn='rplus.txt'
fp=open(fn,'w+')
fp.write('aaaaa\n')
fp.close() fa=open('rplus.txt','a')
fa.write('bbbbb\n')
fa.close() fa=open(fn,'r')
r=fa.read()
print r
fa.close()

二,格式化读写文件

1,格式化写文件
     调用write函数,使用格式化控制符来格式化写入字符串。
 fn='wformat.txt'
fw=open(fn,'w')
fw.write('%10s\t %3s\t %6s\n'%('name','age','sex'))
fw.write('%10s\t %3s\t %6s\n'%('张三',78,'male'))
fw.write('%10s\t %3s\t %6s\n'%('李四',50,'male'))
fw.write('%10s\t %3s\t %6s\n'%('王五',80,'male'))
fw.write('%10s\t %3s\t %6s\n'%('张强',90,'female'))
fw.close()
2,读成列表
     文件的readlines函数可以将文本文件的若干行文本一一映射成列表的若干项,即文本文件的每一行映射成列表的一个数据项,每个数据项都是字符串。
 fr=open('templist.txt','r')
print fr.readlines()
fr.close()
结果如下:
 >>>
[' aaaaaaaa\n', ' bbbbbbbb\n', ' cccccccc']
3,读成一行文件
     调用readline函数读一行内容,而read函数是一次性将文件的内容全部读回。另外,可以用strip函数去掉\n和空格。
 fr=open('templist.txt','r')
print fr.readline().strip().strip('\n')
print fr.readline().strip().strip('\n')
print fr.readline().strip().strip('\n')
fr.close()

结果如下:

 >>>
aaaaaaaa
bbbbbbbb
cccccccc
4,split格式化数据
 fr=open('wformat.txt','r')
line1=fr.readline()
print line1
line2=fr.readline()
print line2
print line2.split('\t')
fr.close()

结果如下:

 >>>
name age sex 张三 78 male [' \xd5\xc5\xc8\xfd', '', ' male\n']

读取文件(格式化)的内容:

 fr=open('wformat.txt','r')
while (1==1):
line=fr.readline()
if(line==''):
break
else:
print line
fr.close() >>> ================================ RESTART ================================
>>>
name age sex 张三 78 male 李四 50 male 王五 80 male 张强 90 female >>>
5,读写子目录文件
     只需指定文件时描述好路径即可,但是注意两点:1)转义字符的问题;2)不能创建文件夹,文件夹必须预先存在。
 fn='c:\\test.txt'
fp=open(fn,'w+')
fp.write('www.python.com')
fp.close()
三,字典及其基本操作
1,字典定义
     字典:由一对称之为键和值构成,用逗号间隔起来,用花括号括起来就构成了字典。语法结构:
                dict_name={key:value,key:value,key:value,……}
     字典的数据项的值可以是字典,列表等数据类型。
2,基础操作
1)字典长度:
    len函数可以测得字典的数据项个数。
 >>> dict1={'a':'b','name':'jeap',12:34}
>>> len(dict1)
3
2)元素值的访问:
     Python的字典可以通过键获取其所对应的值,而序列型数据字符串,列表则是通过index索引来获取的。字典的元素的关系比较稀松,是无序的。
 >>> dict1={'a':'b','name':'jeap',12:34}
>>> print dict1['a'],dict1[12]
b 34

3)元素值的修改:

    通过键获取修改所对应的值。
  >>> dict1['a']='hello'
>>> print dict1
{'a': 'hello', 12: 34, 'name': 'jeap'}

4)元素项的删除:

     通过del 字典名[键]来删除字典里的元素。
 >>> del dict1[12]
>>> print dict1
{'a': 'hello', 'name': 'jeap'}

5)元素项的增加:

      通过字典名[新键]赋值的方式在字典里新增一个数据项。
 >>> dict1['QQ']=''
>>> print dict1
{'a': 'hello', 'QQ': '', 'name': 'jeap'}
>>> dict1['sex']='F'
>>> print dict1
{'a': 'hello', 'QQ': '', 'name': 'jeap', 'sex': 'F'}

6)in运算:

     判断某键是否存在于字典里。
 >>> 'name' in dict1
True
>>> 'F' in dict1
False
注意:in运算查找的是Key值,而非value值。
 
四,字典的相关函数
1)clear函数:清空字典数据项。
 >>> print dict1
{'a': 'hello', 'QQ': '', 'name': 'jeap', 'sex': 'F'}
>>> dict1.clear()
>>> print dict1
{}
2)copy函数:字典复制,与源对象间的关系是备份关系。
 >>> dict1={'a': 'hello', 'QQ': '', 'name': 'jeap', 'sex': 'F'}
>>> dict2=dict1.copy()
>>> print dict2
{'a': 'hello', 'QQ': '', 'name': 'jeap', 'sex': 'F'}
3)get函数:获取某键锁对应的值,等价于dict_name[键]。
 {'a': 'hello', 'QQ': '', 'name': 'jeap', 'sex': 'F'}
>>> dict1.get('QQ')
''
4)keys函数:获取字典所有的key。
 >>> dict1.keys()
['a', 'QQ', 'name', 'sex']
5)values函数:获取字典所有的value。
 >>> dict1.values()
['hello', '', 'jeap', 'F']
6)intems函数:获取字典所有的key-value。
 >>> dict1.items()
[('a', 'hello'), ('QQ', ''), ('name', 'jeap'), ('sex', 'F')]
7)update函数:更新字典里某键(key)的键值(value),如果更新的key原字典没有,则update就向字典里添加一项数据。
 >>> new={'age':32}  #原字典没有,新增
>>> add={'name':'张三'} #原字典存在,更新'jeap'为'张三'
>>> dict1.update(new)
>>> dict1.update(add)
>>> print dict1
{'a': 'hello', 'QQ': '', 'name': '\xd5\xc5\xc8\xfd', 'age': 32, 'sex': 'F'}
8)dict函数:创建字典。
   下面举例三种创建字典的方法:
 >>> d0=dict() #创建空字典
>>> print d0
{}
>>> d1=dict(name='zhangsan',QQ='',age=23)#通过赋值创建字典
>>> print d1
{'QQ': '', 'age': 23, 'name': 'zhangsan'}
>>> val=['lisi','',25]
>>> print val
['lisi', '', 25]
>>> key=range(1,4)
>>> d2=dict(zip(key,val))#使用一对列表创建字典
>>> print d2
{1: 'lisi', 2: '', 3: 25}
9)pop和popitem函数:pop方法通过键key获取其值value并从字典中删除该数据项;popitem函数则是随机移除一个数据项,返回值是元组。
 >>> val=['Tom','Jack','Rose','John','Mark']
>>> key=range(1,6)
>>> dic=dict(zip(key,val))
>>> print dic
{1: 'Tom', 2: 'Jack', 3: 'Rose', 4: 'John', 5: 'Mark'}
>>> dic.pop(2)
'Jack'
>>> dic.popitem()
(1, 'Tom')
>>> print dic
{3: 'Rose', 4: 'John', 5: 'Mark'}
10)实践应用:字典和for循环遍历字典。
     i)通过in运算和键,来访问字典的值。
 >>> key=range(1,6)
>>> val=['Tom','Jack','Rose','John','Mark']
>>> dic=dict(zip(key,val))
>>> for x in dic:
print dic[x] Tom
Jack
Rose
John
Mark
     ii)通过items函数返回值为(key,value)元组组成的列表来访问。
 >>> print dic.items()
[(1, 'Tom'), (2, 'Jack'), (3, 'Rose'), (4, 'John'), (5, 'Mark')]
>>> for (k,v) in dic.items():
print 'dic[',k,']=',v dic[ 1 ]= Tom
dic[ 2 ]= Jack
dic[ 3 ]= Rose
dic[ 4 ]= John
dic[ 5 ]= Mark
>>>

 五,小结

      本章主要介绍python开发的进阶知识,文件的基本操作,字典的相关概念,基本操作运算和相关函数,为以后实战应用做一个铺垫,本章存在的遗留问题是,如何调用不在同一目录文件下的.py自定义模块?按照书上的代码未能实现。

Python学习系列(五)(文件操作及其字典)的更多相关文章

  1. Python学习系列之文件操作

    Pyhton文件打开方式 with= open('文件路径','打开模式') as f:#PS:python3提供了with语句来帮我们自动调用close方法,所以说无论打开文件是否出错都能自动正确的 ...

  2. python学习笔记(五)-文件操作2

    一.文件修改 现有文件file.txt,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...

  3. 【Python学习之六】文件操作

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.文件的打开与关闭 使用open函数,可以打开一 ...

  4. python学习笔记:文件操作和集合

    一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...

  5. python学习笔记4(文件操作)

    文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...

  6. Python学习:7.文件操作

    文件操作 我们曾将听过一个问题,将大象放入冰箱分为三步:1.打开冰箱门,2.将大象放进去,3.关上冰箱门.今天我们要讲的Python文件操作的步骤就像将大象放入冰箱的步骤一样. 使用Python操作文 ...

  7. python学习笔记之文件操作(三)

    这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...

  8. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  9. python学习第十八天 --文件操作

    这一章节主要讲解文件操作及其文件读取,缓存,文件指针. 文件操作 (1)文件打开:open(filepath,filemode) filepath:要打开文件的路径 filemode:文件打开的方式 ...

  10. python之路(五)-文件操作

    文件操作无非两个,即:读.写 python 2.x: 文件句柄 = file('文件路径', '模式') python3.x: 文件句柄 = open('文件路径', '模式') 打开文件的模式有: ...

随机推荐

  1. 解析Linux系统的平均负载概念

    一.什么是系统平均负载(Load average)? 在Linux系统中,uptime.w.top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢?系统平均负载被定义为 ...

  2. LeetCode——Number of Boomerangs

    LeetCode--Number of Boomerangs Question Given n points in the plane that are all pairwise distinct, ...

  3. java分页的实现(后台工具类和前台jsp页面)

    1.首先,新建一个类Page.java public class Page implements Serializable { private static final long serialVers ...

  4. jsp——js事件修改属性样式的两种方法(直接赋值、修改属性)、验证表单符合某要求、阻止表单提交、告诉浏览器不要缓存

    代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodi ...

  5. oracle 查询表名、字段名、添加注释

    --查询所有表名 SELECT T.TABLE_NAME FROM USER_TABLES T; --查询所有字段名 SELECT T.COLUMN_NAME FROM USER_COL_COMMEN ...

  6. CNI:容器网络接口

    CNI 简介 不管是 docker 还是 kubernetes,在网络方面目前都没有一个完美的.终极的.普适性的解决方案,不同的用户和企业因为各种原因会使用不同的网络方案.目前存在网络方案 flann ...

  7. thinkphp3.2.3 定时任务重新加载, 无法加载新的定时任务的问题

    thinkphp3.2.3 的定时任务有个坑,一旦你改名定时任何或者路径,新的定时任务将无法加载,无论你重启php还是重启nginx,甚至重启服务器,都不行. 原因是你要删掉一个类似lock文件,才可 ...

  8. LeetCode第[36]题(Java):Valid Sudoku

    题目:有效的数独表 难度:Medium 题目内容: Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be ...

  9. JSON Web Token (JWT) 简介

    JSON Web Token (JWT) 是一种基于 token 的认证方案. JSON Web Token 的结构 一个 JWT token 看起来是这样的: eyJhbGciOiJIUzI1NiI ...

  10. 新东方雅思词汇---8.2、chron

    新东方雅思词汇---8.2.chron 一.总结 一句话总结:时间 chronic 英 ['krɒnɪk]  美 ['krɑnɪk]  adj. 慢性的:长期的:习惯性的 n. (Chronic)人名 ...