python27期day08:文件操作、作业题。
0、文件操作的作用:持久化存储。
1、file路径。
相对路径:相对于当前运行的文件目录。
绝对路径:从磁盘根部开始查找的就是绝对路径。
获取当前工作路径用getcwd:import os
print(os.getcwd())
转义:\\ 普通的\
r 转义 r要加在路径的外面。
2、mode = 操作文件的方式: r 只读文本:
w清空写文本:(意思是否包含.read()操作、这个是不包含read操作)
a追加写文本:
rb只读字节:用于图片读字节。
wb清空写字节:用于字节转图片。
ab追加写字节:
r+:
w+:清空写读:(意思是否包含.read()操作、这个是包含read操作)
a+:追加写读(防止报错)
open打开:
f文件句柄:
3、文件的编码。
4、 f.read()全部读取、文件读取时只能读一行。
read(3) 模式的r的情况下按照字符读取。
readline 读取一行。
readlines 读取多行、以列表的形式存储。
5、rb读字节:
f = open("2.png","rb")
print(f.read())
6、w清空写:有文件时清空文件、没文件时创建文件、打开文件时自动清空文件内容、写入内容
7、f.close() 关闭文件
8、f.flush() 刷新
9、\n 回车
10、a 追加写、没文件时创建文件、一直在文件的末尾进行添加。
11、r+ 可读可写:
先读后写: f = open("test","r+",encoding="utf-8")
a = f.read()
print(a)
f.write("这是读写")
先写后读: f = open("test","r+",encoding="utf-8")
f.write("这是读写")
a = f.read()
print(a)
12、w+ 清空写、读:
13、f.seek(0,0) 移动光标、移动到文件的头部。
f.seek(0,1) 移动到光标当前位置
f.seek(0,2) 移动到文件末尾
14、a+ 追加写、读
15、查看光标、返回的是字节用tell:
f.tell()
16、with open 自动关闭文件、可以同时操作多个文件。
17、文件的修改: os.rename 重命名文件名
18、文件中存储的都是字符串。
19、写入内容时只能写入字符串。
作业题:
# 1.有如下文件,a1.txt,里面的内容为:
# 老男孩是最好的学校,
# 全心全意为学生服务,
# 只为学生未来,不为牟利。
# 我说的都是真的。哈哈
# 分别完成以下的功能:
# a,将原文件全部读出来并打印。
f = open("a1.txt","r",encoding="utf-8")
print(f.read())
# b,在原文件后面追加一行内容:信不信由你,反正我信了。
with open("a1.txt","a",encoding="utf-8") as f:
f.write("信不信由你,反正我信了。")
# c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
with open("a1.txt","a",encoding="utf-8") as f:
f.write("信不信由你,反正我信了。\n")
# d,将原文件全部清空,换成下面的内容:
# 每天坚持一点,
# 每天努力一点,
# 每天多思考一点,
# 慢慢你会发现,
# 你的进步越来越大。
with open("a1.txt","w+",encoding="utf-8") as f:
f.write("每天坚持一点,\n"
"每天努力一点,\n"
"每天多思考一点,\n"
"慢慢你会发现,\n"
"你的进步越来越大。")
print(f.read())
# 2.有如下文件,t1.txt,里面的内容为:
# 葫芦娃,葫芦娃,
# 一根藤上七个瓜
# 风吹雨打,都不怕,
# 啦啦啦啦。
# 我可以算命,而且算的特别准:
# 上面的内容你肯定是心里默唱出来的,对不对?哈哈
# 分别完成下面的功能:
# a,以r的模式打开原文件,利用for循环遍历文件句柄。
with open("t1.txt","r",encoding="utf-8") as f:
for i in f:
print(i.strip())
print("----------------------------------------------------------------------------------")
# b,以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析a,与b 有什么区别?深入理解文件句柄与 readlines()结果的区别。
f = open("t1.txt","r",encoding="utf-8")
f1 = f.readlines()
for i in f1:
print(i.strip()) #以readlines
# c,以r模式读取‘葫芦娃,’前四个字符。
f1 = open("t1.txt","r",encoding="utf-8")
print(f1.read(4))
print("////////////////////////////////////////////////////////////////////////////////")
# d,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。
f = open("t1.txt","r",encoding="utf-8")
f1 = f.readline().strip()
print(f1)
print("****************************************************************************")
# e,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。
f = open("t1.txt","a+",encoding="utf-8")
f.write('老男孩教育')
a = f.read()
print(a)
# 3.文件a.txt内容:每一行内容分别为商品名字,价钱,个数。
# apple 10 3
# tesla 100000 1
# mac 3000 2
# lenovo 30000 3
# chicken 10 3
# 通过代码,将其构建成这种数据类型:[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱。
f = open("a.txt","r",encoding="utf-8")
f1 = f.read()
print(f1)
# 4.有如下文件:
# alex是老男孩python发起人,创建人。
# alex其实是人妖。
# 谁说alex是sb?
# 你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。
print("///////////////////////////////////////////////////////////")
# 将文件中所有的alex都替换成大写的SB(文件的改的操作)。
with open("a2.txt","r",encoding="utf-8") as f,\
open("a3.txt","w+",encoding="utf-8") as f1:
for i in f:
f1.write(i.replace("alex","SB"))
f1.flush()
import os
os.rename("a2","a4")
os.rename("a3","a2")
# 5.文件a1.txt内容(选做题)
# name:apple price:10 amount:3 year:2012
# name:tesla price:100000 amount:1 year:2013
# 通过代码,将其构建成这种数据类型:
# [{'name':'apple','price':10,'amount':3,year:2012},
# {'name':'tesla','price':1000000,'amount':1}......]
# 并计算出总价钱。
lst = []
the_sum = 0
f = open("a1.txt","r",encoding="utf-8")
for i in f:
dic = {}
for em in i.split():
k,v = em.split(":")
dic[k] = v
lst.append(dic)
print(lst)
for i in lst:
the_sum += int(i["price"]) * int(i["amount"])
print(the_sum)
# 6.文件a1.txt内容(选做题)
# 序号 部门 人数 平均年龄 备注
# 1 python 30 26 单身狗
# 2 Linux 26 30 没对象
# 3 运营部 20 24 女生多
# 通过代码,将其构建成这种数据类型:
# [{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},
lst = []
f = open("a1.txt","r",encoding="utf-8")
a,b,c,d,e = f.readline().split()
# print(a,b,c,d,e)
for i in f:
num,clas,people,age,remarks = i.split()
dic = {a:num,b:clas,c:people,d:age,e:remarks}
lst.append(dic)
print(lst)
python27期day08:文件操作、作业题。的更多相关文章
- day08——文件操作
day08 文件操作: open() :打开 f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding=&q ...
- day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作
复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...
- day08 文件操作
1.三种字符串: (1)u'' 普通字符串 ---> u'abc' ---> 默认的文本方式,以字符作为文本的输出方式 (2)b'' 二进制字符串 ---> b'ASCII码' -- ...
- day08文件操作
今日内容 文件操作 内容详细 1.打开文件 1.open("作业讲解.py",mode="r",encoding="utf-8") 2.文件 ...
- Python集训营45天—Day08 (文件操作)
目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...
- python day08 文件操作
2019.4.8 S21 day08笔记总结 一.进制 对于计算机而言无论是文件存储 / 网络传输数据本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制: QQ/ ...
- Python:Day08 文件操作
能调用方法的一定是对象! 文件的操作分为三步: 1.打开文件 2.操作文件 3.关闭文件 f= open('小重山','r',encoding='utf8') #以读的方式打开一个文件,如果文件不存在 ...
- 铁乐学Python_day08_文件操作
一.[基本的文件操作] 参数: 1.文件路径: 2.编码方式: 3.执行动作:(打开方式)只读,只写,追加,读写,写读! #1. 打开文件,得到文件句柄并赋值给一个变量 f = open('E:/Py ...
- day08(字符编码,字符与字节,文件操作)
一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float(' ...
随机推荐
- SQL 错误: ORA-65096: 公用用户名或角色名无效 65096. 00000 - "invalid common user or role name" *Cause: An attempt was made to create a common user or role with a name
在Oracle SQL Developer中,试图创建RD用户时,出现了如下的错误: 在行: 上开始执行命令时出错 - 错误报告 - SQL 错误: ORA: 公用用户名或角色名无效 . - &quo ...
- HTML+CSS基础 border css属性 Div块 盒子
border css属性 边框颜色 border-color:red/#ffffff/rgb()默认为黑色 边框样式 border-style:solid (实线) dashed (虚线).默认为n ...
- redis命令之 ----String(字符串)
SET SET key value [EX seconds] [PX milliseconds] [NX|XX] 将字符串值 value 关联到 key . 如果 key 已经持有其他值, SET 就 ...
- Eureka配置
介绍 SpringCloud是一个完整的微服务治理框架,包括服务发现和注册,服务网关,熔断,限流,负载均衡和链路跟踪等组件. SpringCloud-Eureka主要提供服务注册和发现功能.本文提供了 ...
- PHP--常用配置项
一.简介 PHP的配置项可以在配置文件php.ini中配置,也可以在脚本中使用ini_set()函数临时配置. 二.常用配置项 1.错误信息相关配置 1)display_errors 设定PHP是否将 ...
- 基于kafka_2.11-2.1.0实现的生产者和消费者代码样例
1.搭建部署好zookeeper集群和kafka集群,这里省略. 启动zk: bin/zkServer.sh start conf/zoo.cfg. 验证zk是否启动成功: bin/zkServer. ...
- C# 人民币大写金额转换
/// <summary> /// 转换人民币大小金额 /// </summary> /// <param name="nu ...
- python调用时间装饰器检测函数运行时间
用一个装饰器,监控程序的运行时间 import time def count_time(func): def int_time(*args, **kwargs): start_time = time. ...
- laravel报错 No query results for model . 的解决方法
这个通常由路由绑定出的问题,注意有绑定模型的路由,同路径的路由需要放在没绑定路由的后面 例如:/product/comments和/product的是同路径,/product必须放在/product/ ...
- Laravel 创建指定表 migrate
解决方案:打开创建表的那个 migration 文件,在创建表的方法执行之前加一个判断条件 if (!Schema::hasTable('password_resets')) { Schema::cr ...