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. java程序:调用百度api进行情感分析

    源码: package com.jeson.ceshi; import java.util.HashMap; import org.json.JSONObject; import com.baidu. ...

  2. gradle初学可能遇到的问题

    gradle的脚本文件名称必须是build.gradle,如果自学的时候随便起的名字测试.如:test.gradle,脚本执行的时候是找不到相对于的任务的.会报错

  3. Vue.js 源码分析(二十七) 高级应用 异步组件 详解

    当我们的项目足够大,使用的组件就会很多,此时如果一次性加载所有的组件是比较花费时间的.一开始就把所有的组件都加载是没必要的一笔开销,此时可以用异步组件来优化一下. 异步组件简单的说就是只有等到在页面里 ...

  4. 《 .NET并发编程实战》实战习题集 - 5 - 并发查找等待算法

    先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.

  5. UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10

    文/云之幻 前不久,博客作者 Bravo Yeung 写了一篇还算略受欢迎的关于 RSS 的文章 .Net开发者必知的技术类RSS订阅指南. RSS 现在用的人很少了,而且就算是我,也不过是在一周前才 ...

  6. dedecms5.7文章页替换掉特定标志的图片链接

    dedecms5.7文章页的替换掉特定标志的图片链接 解决思路 1个是在数据库里面执行替换操作 我自己查看 织梦后台也有这个功能  但是执行了一次 效果不是很好  那么就用下面的  在模板中进行内容替 ...

  7. C++回调,函数指针

    想要理解回调机制,先要理解函数指针 函数指针 函数指针指向的是函数而非对象,和其他指针一样,函数指针指向某种特定的类型 函数的类型由他的返回类型和参数类型共同决定,与函数名无关,如: bool len ...

  8. centos7安装mysql5.7(rpm安装版)

    1.下载mysql5.7的rpm安装包 rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!! 下载地址:https://dev.mysql.com/downl ...

  9. 深入理解枚举属性与for-in和for-of

    首先要分清什么是可枚举属性,什么是不可枚举属性 1.可枚举属性 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被f ...

  10. Windows动态链接库:dll与exe相互调用问题

    本文回顾学习一下Windows动态链接库:dll与exe相互调用问题.一般滴,exe用来调用dll中的类或函数,但是dll中也可以调用exe中的类或函数,本文做一些尝试总结. dll程序: Calcu ...