一、文件操作
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. mkfs.ext4 磁盘分区

    在linux上格式化一个磁盘分区时,出现如下错误 root@d:~# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (11-May-2015) mkfs.ext4: inode ...

  2. DNS解析过程和DNS挟持

    1.DNS解析过程详解 1).在浏览器中输入一个域名,例如www.tmall.com,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析, ...

  3. 分布式技术 webapi 路由追加html、aspx、shtml 适用于 对接 安卓、IOS

    首先是这样,在对接安卓和IOS或者是第三方调用的接口,我需要在服务端返回一个带.html/.aspx这样后缀的接口. 例子如下图:http://localhost:64131/api/UsersInf ...

  4. centos 安装jdk/resin/mysql

    一.安装JDK 1.判断是否安装 java -version 我的计算机上使用java -version命令,内容如下: java version "1.7.0_45"OpenJD ...

  5. hibernate-Table 'XXX.XXX' doesn't exist

    hibernate---Table 'XXX.XXX' doesn't exist 在设置自动生成数据表的策略中: <!-- 自动生成数据表的策略 --> <property nam ...

  6. Treflection04_面试题

    1. package reflectionZ; import java.lang.reflect.Field; import java.lang.reflect.Method; public clas ...

  7. 一块网卡多个IP实现

    ////////////////////////////写在前面//////////////////////////////////////////// 需要注意,这里我们是一块网卡多个IP,而并非是 ...

  8. D3.js学习笔记(一)——DOM上的数据绑定

    开始学习D3.js,网上没有找到很满意的中文教程,但是发现了一个很好的英文教程,讲解的非常详细.从一个初始简单的HTML网页开始,逐步加入D3.js的应用,几乎是逐句讲解.学习的时候,就顺便翻译成中文 ...

  9. 通过使用Netty实现RPC

    目标:通过使用Netty框架实现RPC(远程过程调用协议),技术储备为以后实现分布式服务框架做技术储备.在这里实现自定义协议主要实现远程方法调用. 技术分析: 1.通过Java的反射技术我们可以获取对 ...

  10. SQL命令查询Oracle存储过程信息(代码内容等)

    SELECT * FROM ALL_SOURCE  where TYPE='PROCEDURE'  AND TEXT LIKE '%0997500%'; --查询ALL_SOURCE中,(脚本代码)内 ...