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:文件操作、作业题。的更多相关文章

  1. day08——文件操作

    day08 文件操作: open() :打开 f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding=&q ...

  2. day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作

    复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...

  3. day08 文件操作

    1.三种字符串: (1)u'' 普通字符串 ---> u'abc' ---> 默认的文本方式,以字符作为文本的输出方式 (2)b'' 二进制字符串 ---> b'ASCII码' -- ...

  4. day08文件操作

    今日内容 文件操作 内容详细 1.打开文件 1.open("作业讲解.py",mode="r",encoding="utf-8") 2.文件 ...

  5. Python集训营45天—Day08 (文件操作)

    目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...

  6. python day08 文件操作

    2019.4.8 S21 day08笔记总结 一.进制 对于计算机而言无论是文件存储 / 网络传输数据本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制: QQ/ ...

  7. Python:Day08 文件操作

    能调用方法的一定是对象! 文件的操作分为三步: 1.打开文件 2.操作文件 3.关闭文件 f= open('小重山','r',encoding='utf8') #以读的方式打开一个文件,如果文件不存在 ...

  8. 铁乐学Python_day08_文件操作

    一.[基本的文件操作] 参数: 1.文件路径: 2.编码方式: 3.执行动作:(打开方式)只读,只写,追加,读写,写读! #1. 打开文件,得到文件句柄并赋值给一个变量 f = open('E:/Py ...

  9. day08(字符编码,字符与字节,文件操作)

    一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float(' ...

随机推荐

  1. wafer2-nodejs 本地部署服务器

    友情提示:假设你已经部署好了腾讯云微信小程序服务,如果没有,就不用往下看了,果断选云开发. ------------------------------------------------------ ...

  2. <Math> 258 43

    258. Add Digits class Solution { public int addDigits(int num) { if(num == 0) return 0; if(num % 9 = ...

  3. Paper | Densely Connected Convolutional Networks

    目录 黄高老师190919在北航的报告听后感 故事背景 网络结构 Dense block DenseNet 过渡层 成长率 瓶颈层 细节 实验 发表在2017 CVPR. 摘要 Recent work ...

  4. 阿里Sentinel支持Spring Cloud Gateway啦

    1. 前言 4月25号,Sentinel 1.6.0 正式发布,带来 Spring Cloud Gateway 支持.控制台登录功能.改进的热点限流和注解 fallback 等多项新特性,该出手时就出 ...

  5. 【SpringCloud之pigx框架学习之路 】1.基础环境安装

    [SpringCloud之pigx框架学习之路 ]1.基础环境安装 [SpringCloud之pigx框架学习之路 ]2.部署环境 1.Cmder.exe安装 (1) windows常用命令行工具 下 ...

  6. 《Linux内核原理与分析》教学进程

    目录 2019-2020-1 <Linux内核原理与分析>教学进程 考核方案 第一周: 第二周: 第三周: 第四周: 第五周 第六周 第七周: 第八周 第九周 第十周 第十一周: 第十二周 ...

  7. Linux shell自动读mongo数据、远程获取文件大小示例脚本

    1.示例1 功能:对mongoDB导出数据,根据sid的不同状态进行统计 技术点:shell bash  读写文件.字符串截取.函数.用多个文件提到的map.grep查找并赋值给变量 #!/bin/b ...

  8. Oracle中TIMESTAMP时间的显示格式

    Oracle中的TIMESTAMP数据类型很多人用的都很少,所以即使最简单的一个查询返回的结果也会搞不清楚到底这个时间是什么时间点. 例如: 27-1月 -08 12.04.35.877000 上午 ...

  9. WPF TabItem设置Visibility隐藏Control内容

    源自MSDN问题. 思路很简答: TabControl因为只显示TabItem的选择项的control. 所以单独的设置tabitem的control或者使用control的触发器都是不起作用的. 只 ...

  10. 如何在 Knative 中部署 WebSocket 和 gRPC 服务?

    作者 | 冬岛  阿里云容器平台工程师 导读:虽然说 Knative 默认就支持 WebSocket 和 gRPC,但在使用中会发现,有时想要把自己的 WebSocket 或 gRPC 部署到 Kna ...