python基础(六)dict字典和文件操作open
字典dict
使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的.
#定义一个字典
dict = {
'name' : 'sylar',
'age' : 18,
'post' : 'OPS',
'salary' : 80000
}
###常用操作和方法
#访问字典的数据,使用定义的key来获取
print(dict_test['name'])
#修改字典
dict_test['name'] = 'Sylar'
print(dict_test['name'])
#copy复制一个字典
#clear删除所有元素
a = dict_test.copy()
print(a)
print(a.clear())
#fromkyes创建一个新字典,以序列中元素做字典的键,val 为字典所有键对应的初始值
a = {}
a = a.fromkeys([1,2,3,4,5],'defalt')
print(a)
#get获取元素值同dict_test['name']
print(dict_test.get('name'))
#item遍历所有元素,将元素以键值对元组的方式输出
print(dict_test.items())
#keys遍历所有元素的value
print(dict_test.keys())
#pop删除一个元素,并返回元素的value值
print(dict_test.pop('age'))
print(dict_test)
#popitem删除一个元素,并以元组的形式返回key,value值
print(dict_test.popitem())
print(dict_test)
#setdefault设置一个默认值的元素,如果key已经存在则返回对应的value
print(dict_test.setdefault('a',100))
print(dict_test)
#update用一个字典的数据去更新另外一个字典的数据
a = {'name':'tom','a':'b'}
dict_test.update(a)
print(dict_test)
#valus遍历所有元素的value
print(dict_test.values())
遍历字典的方法
for i in dict_test:
print(i, dict_test[i])
for i in dict_test.items():
print(i)
for k,v in dict_test.items():
print(k, v)
文件操作
对文件的打开读写是用open函数,打开文件的方式又分为:
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
简单来说常用的:r+先读后写从头开始覆盖写.w+先写后读,默认先创建一个空文件默认也只能追加写在文件最后面(会清空同名文件谨慎使用).a+是追加读写模式,一般情况都用这种模式来操作文件.文件插入数据很麻烦,.所以要修改文件,建议读出一个文件写到一个新文件里,数据替换完成后替换原文件
#open函数使用方式,用一个文件句柄的方式去打开一个文件.操作完以后必须关闭文件.
f = open('a.txt','r+',encoding='utf-8')
a = f.read()
f.close()
print(a)
#常用方法
#read读取整个文件,由于是一次性读取整个文件只适合对小文件使用.可以指定参数读取多少个字节
a = f.read(1)
#close关闭文件
#readline每次读取一行
#readlines读取整个文件,可以指定参数读取多少行
#write写文件
#truncate截断一个文件,保留多少个字节
#flush手动将内存缓存的数据刷写到硬盘中,而不是等待程序的缓存控制策略去刷写数据
#tell返回文件指针的位置
#seek移动文件指针的位置
f = open('a.txt','r',encoding='utf-8')
print(f.readline())
print(f.readline())
print(f.readline())
print( f.tell())
f.seek(10)
print( f.tell())
print(f.readline())
f.close()
with open as f
为了更好保护文件,python中提供了with函数来保护对文件的操作.所以我们要进行文件操作一定要使用with函数.在python3中with支持同时操作多个文件
#因为读取文件是按行读取所以for line in f:,而不是使用for i in readline:.后一种方法是读取每一行的字符串的每一个字符
with open('a.txt','r',encoding='utf-8') as f,\
open('b.txt','w+',encoding='utf-8') as f1:
for line in f:
text = line.strip()+'\n'
f1.writelines(text)
python基础(六)dict字典和文件操作open的更多相关文章
- Python基础【day03】:文件操作(六)
一.概述 我们工作中需要经常操作文件,下面就讲讲如何用Python操作文件 1.文件操作的流程: 打开文件,得到文件句柄赋值给一个变量 通过文件句柄,对文件进行操作 关闭文件 二.入门 1.语法 op ...
- python基础(内置函数+文件操作+lambda)
一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...
- python基础编程: 编码补充、文件操作、集合、函数参数、函数递归、二分查找、匿名函数与高阶函数
目录: 编码的补充 文件操作 集合 函数的参数 函数的递归 匿名函数与高阶函数 二分查找示例 一.编码的补充: 在python程序中,首行一般为:#-*- coding:utf-8 -*-,就是告诉p ...
- python基础之 编码进阶,文件操作和深浅copy
1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...
- Python基础之字符编码,文件操作流与函数
一.字符编码 1.字符编码的发展史 阶段一:现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII ASCII:一个Bytes代表一个字符(英文字符/键盘上的所有其他字符),1Bytes=8bit ...
- Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作
本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...
- Python基础(5)_文件操作
一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 二.文件打开模式 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文 ...
- python基础数据类型--dict 字典
字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
随机推荐
- 网络相关系列之三:通过GET和POST方法发送数据
写在最前面:年少的安逸舒适在随着年龄的到来和现实生活的压迫总有一天会全数归还(事实上就是<无间道>中那句:"出来混,迟早要还的!") so fighting. 一.GE ...
- iWeb峰会(HTML5峰会)2015年7月19日上海站会后感想
上周日专门从南京跑到上海參加了iWeb峰会(HTML5峰会),感觉这一天去的挺值的.几个演讲都挺精彩,干货不少啊. 总体感觉随着2014年HTML5标准的终于定稿,最近HTML5 ...
- JAVA入门[14]-Spring MVC AOP
一.基本概念 1.AOP简介 DI能够让相互协作的软件组件保持松散耦合:而面向切面编程(aspect-oriented programming,AOP)允许你把遍布应用各处的功能分离出来形成可重用的组 ...
- CI学习 CCNET Config 第一天
CCNet的整体结构就是一个Xml文档,根元素就是cruisecontrol,具体的代码块如下所示: <cruisecontrol xmlns:cb="urn:ccnet.config ...
- AntiXSS的使用
下载类库: http://wpl.codeplex.com 添加程序集引用 在web.config文件中将AntiXSS类库注册为应用程序的编码器 在<system.web& ...
- 六、Spring Boot Controller使用
在Controller中使用 @RestController 注解,该注解是spring 4.0引入的.查看源码可知其包含了 @Controller 和 @ResponseBody 注解.我们可以理解 ...
- android studio 使用adb命令传递文件到android设备
一:文件传输 在android开发中,有时候需要将文件从pc端传递至android,或者将软件运行的日志,从android设备传递到pc进行分析,我们可以使用windows的cmd窗口,或者andro ...
- python爬虫入门学习
近期写的一个爬虫的Demo,只是简单的用了几个函数.实现了简单的爬取网页的功能(以途牛为例). import urllib2 import re import urlparse import robo ...
- MySQL select into
MYSQL不支持: Select * Into new_table_name from old_table_name; Create table new_table_name (Select * fr ...
- 【ANT】时间戳
属性 说明 举例 DSTAMP 设置为当前日期,默认格式:yyyymmdd 20170309 TSTAMP 设置为当前时间,默认格式:hhmm 2007 TODAY 设置为当前日期,带完整的月份 Ma ...