目录

1.文件操作实例

2.文件常用操作

3.with模块操作文件

常用实例,把文件里面的内容读出来做成字典的形式在做成字列表展示。

1.精简版。

lst = []
f = open("file01", mode="r", encoding="utf-8")
for line in f:
line1 = line.strip().split(",")
dic = {}
dic["id"] = line1[0]
dic["name"] = line1[1]
dic["price"] = line1[2]
lst.append(dic)
print(lst)

2.升级版。

f = open("file01", mode="r", encoding="utf-8")
title_str = f.readline().strip()
title_list = title_str.split(",")
print(title_list)
lst = []
for body in f:
body_str = body.strip().split(",")
print(body_str)
dic = {}
for i in range(len(title_list)):
dic[title_list[i]] = body_str[i]
lst.append(dic)
print(lst)

一. 文件读写追加以及修改

r:读  r+: 读写  rb: 以字节的形式读。一般用来操作图片视屏音乐等非文字信息。

1.读
f = open("file01", mode="r",encoding="utf-8")
content = f.read()
print(content)
close() ps:读文件but这种方式是读所有 如果文件太大会内存溢出
f = open("file01", mode="r",encoding="utf-8")
for line in f:
print(line) ps:一行一行读取
f = open("file01", mode="r",encoding="utf-8")
for line in f:
input("按回车往下浏览:")
print(line) ps:通过函数input()阻塞 让用户按下回车键继续往下浏览 2.读写
待补充.... 3.rb
f = open("file01", mode="rb")
content = f.read()
print(content) ps:只要有四个方法
read() 读
readline()读一行
readlines() 全部读并且以列表的形式呈现
readable() 判断是否有读的权限

w:写 w+:写读 wb:同上

注意:如果没有⽂文件. 则会创建⽂文件, 如果⽂文件存在. 则将原件中原来的内容删除, 再 写入新内容 。

1.w写
f = open("file02.txt", mode="w", encoding="utf-8")
f.write("Today is monday")
f.flush()
f.close() ps:写的时候最好用flush刷新。 2.wb模式下可以不指定打开⽂文件的编码. 但是在写⽂文件的时候必须将字符串串转化成utf-8的 bytes数据 。
f = open("file02.txt", mode="wb")
f.write("金毛狮王".encode("utf-8"))
f.flush()
f.close()

a:在文件的末尾追加内容 a+ 追加  ab:同上,不管在什么位置都是追加

f = open("file02.txt", mode="a",encoding="utf-8")
f.write("西游记")
f.flush()
f.close()

修改:修改文件实际上是把原来的删除了改名覆盖原来的那一份。

文件复制
f = open("file02.txt", mode="r",encoding="utf-8")
f2 = open("file03.txt",mode="w", encoding="utf-8")
for i in f:
f2.write(i) 文件修改
f = open("file02.txt", mode="r",encoding="utf-8")
f1 = open("file022.txt", mode="w",encoding="utf-8")
for i in f:
i = i.replace("西游记","西游记后传")
f1.write(i) f.close()
f1.flush()
f1.close()
import os
os.remove("file02.txt")
os.rename("file022.txt","file02.txt") 文件操作常见的函数
seek()移动光标的位置 0:开头 1:当前 2.结尾 ps:移动是以bytes为单位,如果是utf8字符集需要乘以三
tell()告诉当前光标的位置 中文算3个bytes 标点数字算一个
f = open("file02.txt", mode="r+",encoding="utf-8")
content = f.read()
print(f.tell())
f.seek(9)
print(f.tell()) truncate截断
f = open("file02.txt", mode="r+",encoding="utf-8")
content = f.seek(10)
print(f.truncate())
print(content)

二. with模块实现文件的操作

import os
with open("file03.txt", mode="r",encoding="utf-8") as f1,\
open("file033.txt",mode="w", encoding="utf-8") as f2:
for line in f1:
f2.write(line)
ps: with的操作不用写close() 会自己帮你检查。

day03 文件操作的更多相关文章

  1. Python基础【day03】:文件操作(六)

    一.概述 我们工作中需要经常操作文件,下面就讲讲如何用Python操作文件 1.文件操作的流程: 打开文件,得到文件句柄赋值给一个变量 通过文件句柄,对文件进行操作 关闭文件 二.入门 1.语法 op ...

  2. day03 set集合,文件操作,字符编码以及函数式编程

    嗯哼,第三天了 我们来get 下新技能,集合,个人认为集合就是用来list 比较的,就是把list 转换为set 然后做一些列表的比较啊求差值啊什么的. 先看怎么生成集合: list_s = [1,3 ...

  3. day03深浅拷贝、文件操作和函数初识

    一.赋值.浅拷贝与深拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法, ...

  4. Day05 (黑客成长日记) 文件操作系列

    文件操作: 1.以什么编码方式输出,就以什么编码方式打开 f = open('d:\文件操作.txt',mode='r',encoding='GB2312') G = f.read() print(G ...

  5. day03_雷神_文件操作

    day03 上周回顾_问题总结: 地址值: li = [] name = ['name','price','count'] dic = {} #如果这里定义空列表,后边的dic[name[i]] = ...

  6. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  7. day08——文件操作

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

  8. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  9. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

随机推荐

  1. hibernate学习以及文件以及注释

    <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hib ...

  2. 将Blender3d软件语言改为中文设置(win各版本+Linux)

    Blender作为开源软件,为全世界的媒体工作者和艺术家而设计,可以被用来进行 3D 可视化,同时也可以创作广播和电影级品质的视频,另外内置的实时 3D 游戏引擎,让制作独立回放的 3D 互动内容成为 ...

  3. Testner测试圈关于页面响应时间的测试行业标准

    Testner测试圈针对小程序页面的响应时间标准建议如下:0-2秒 用户体验好,可以选择性改善,如首屏体验做到秒开等2-4秒 用户体验一般,有改善空间4-6秒 用户体验较差,有较大改善空间6秒以上 用 ...

  4. 派生 de rive

    ''' de rive 派生 python2 (经典类|新式类) python3 (新式类) 1. What is derive? 什么是派生? 派生:子类定义自己新的属性,如果与父类同名,以子类自己 ...

  5. 中国科学技术大学第五届信息安全大赛(hackergame2018自我总结)2

    这一批题都是我不会的,只能把官方write-up放在这里了 1.FLXG 的秘密 ----------------------------------------------------------- ...

  6. TabLayout下划线指示器自适应文字宽度

    解决方案1: 更新design库到28.0.0-rc01 implementation 'com.android.support:design:28.0.0-rc01' 然后在TabLayout里设置 ...

  7. leetcode 第4题 Median of Two Sorted Arrays

    class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int&g ...

  8. 数据下载报getColNameByTableName这个指向异常

    java.lang.NullPointerException at cn.com.burgeon.tasks.webpos.DateGeneration2.getColNameByTableName( ...

  9. thinkphp5.0--编写api,返回json格式

    前几天没有写php代码,今天写了一下,今天的任务主要是构建自己的异常体系类,出现一个问题,就是返回结果不是json格式,而是一个页面,我找了一两个小时,没有找到问题,以为代码的问题,用断点调试了一通, ...

  10. PHP错误日志和内存查看(转)

    本篇文章给大家带来的内容是关于PHP错误日志和内存查看的方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.通过命令查看服务器上一共开了多少的 php-cgi 进程: ...