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. JDOJ3004 超级楼梯

    JDOJ3004 超级楼梯 https://neooj.com/oldoj/problem.php?id=3004 题目描述 有一个超级楼梯共N级,刚开始时你在第一级,若每次只能跨上一级或两级,要走上 ...

  2. 纯CSS打造BiliBili样式博客主题

    前言 一直以来,我都在思考如何减少不必要的JS代码,仅通过CSS来实现博客园主题美化.CSS有很多魔法代码,例如:before,iconfont,order,等等,利用好这些技巧,也能实现很好美化效果 ...

  3. c# lock 锁

    lock语句 lock 语句获取给定对象的互斥 lock,执行语句块,然后释放 lock. 持有 lock 时,持有 lock 的线程可以再次获取并释放 lock. 阻止任何其他线程获取 lock 并 ...

  4. Uboot启动流程分析(二)

    1.前言 在前面的文章Uboot启动流程分析(一)中,链接如下: https://www.cnblogs.com/Cqlismy/p/12000889.html 已经简单地分析了low_level_i ...

  5. Vue.js 源码分析(二十) 指令篇 v-once指令详解

    数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值,例如:<p>Message: {{ msg }}</p>以后每当msg属性发生了改变,插值处的内 ...

  6. WPF 3D相机基本坐标简介

    基本概念 WPF中3D空间基本坐标系是右手坐标系. WPF中3D空间的原点是(0,0,0) Position: 这个参数用来表示相机在空间内的坐标.参数是(X,Y,Z).当修改相机的这个参数时,这个坐 ...

  7. yum 找不到程序,yum更换国内阿里源

    使用百度云服务器,发现百度yum源非常不稳定,果断采用阿里源,操作步骤如下: 一.备份 $ cd /etc/yum.repos.d/ $ mv baidu-bcm.repo baidu-bcm.rep ...

  8. 如何查询正在运行的SQL Server agent job

    运行"msdb"系统数据库下的存储过程"dbo.sp_help_job",可以得知现在SQL Server中有多少个正在运行的agent job: USE [m ...

  9. 百度编辑器UEditor,保存图片的配置问题

    前言: 在使用百度编辑器UEditor的时候,如何将图片保存到服务器,我刚开始以为是要自己写上传文件的方法,后来发现只需要配置一下即可,如果你也正在使用百度富文本编辑器UEditor的话,这篇文章将非 ...

  10. asp.net发布后其他电脑部署——未能加载文件或程序集 System.Web.Mvc, Version=2.0.0.0, Culture=neutral,

    本机测试及发布使用正常 在项目中添加了引用但相关dll文件未在bin文件夹中 导致发布后部署其他电脑未能加载程序集 网上说要下载相关内容在部署服务器安装 但怕在服务器安装出现其他问题 所以在项目中重新 ...