概述:文件的基本操作
1.open 打开文件 f = open("xxx",mode="r",encoding="utf-8") #常用形式 打开一个文件,获得文件句柄
f = open("E:\python\python work\day09\任天堂.txt",mode="r",encoding="utf-8")
content = f.read() # 一次性全部读取
content = f.readline() # 一次读取一行
content = f.readlines() # 一次性读取,并生成列表
f.close()
print(content)
f = open("xbox",mode="w",encoding="utf-8")
content = f.write("这是个什么鬼") 2.绝对路径,相对路径
1. 绝对路径(当文件路径是固定的时候)
从磁盘根目录找文件。 windows下用的就是c,d,e,f, linux: \user\bin\xxxx
2. 相对路径(用的多)
相对路径相对于当前程序所在的文件夹
../ 表示上一层文件夹 f = open("E:/python/python work/day09/任天堂.txt",mode="r",encoding="utf-8") #绝对路径
f = open("../day09/任天堂.txt",mode="r",encoding="utf-8") # 相对路径 用的较多
content = f.read()
f.close()
print(content) 注意:句柄f是一个可以迭代的对象,所以可以进行遍历操作
f = open("../day09/任天堂.txt",mode="r",encoding="utf-8")
for el in f: # 一行一行的读取,末端会有换行符/n 要清除掉
print(el.strip()) 2.文件操作-mode的相关操作
2.1 r 只读
f = open("../day09/任天堂.txt",mode ="r",encoding="utf-8")
content = f.read() # 一次读完
content = f.read(3) #一次读两个字符(返回两个字)
f.write("haha") # 只能写不能读 会报错 not writable
f.close()
print(content) 2.2 w 只写
f = open("ps4.txt",mode ="w",encoding="utf-8") # w 如果文件不存在会重新创建一个新文件,假如存在会先清空该文件
f.write("啥玩意,一点也不好玩") #使用 w 要慎重
content = f.read() #只可以写不可以读 报错:not readable
f.close() 2.3 a 追加
f = open("ps4.txt",mode ="a",encoding="utf-8") # a模式下会在文件尾部写入相应字符
f.write("可是还想买啊")
content = f.read() ##仍然只可以写不可以读 报错:not readable
f.close()
print(content) 2.4 r+ 读加写
f = open("../day09/任天堂.txt",mode ="r+",encoding="utf-8")
content = f.read() # 可读可写,但因为光标的缘故,必须先读后写才能写在尾部,但注意 若先写会开头写入,并覆盖之前的东西
f.write("炸弹人")
content = f.read()
f.close()
print(content) 注意坑一 r+
坑: 不论你读取多少内容。再次写入的时候都是在末尾,不会因为光标在第三个字而在第三个字写入
f = open("../day09/任天堂.txt", mode="r+", encoding="utf-8")
info = f.read(3)
f.write("洛克人")
f.close()
print(info) 2.5 w+ 写加读
f = open("ps4.txt",mode ="w+",encoding="utf-8") # 依旧坑爹,打开就会清空文件
f.write("ps4没有swith一半好玩") #虽然可以读可是没什么卵用,读放在写之前,因为清空什么也读不到,
c = f.read() # 而在写完之后由于光标在末尾,也什么都读不到,需靠移动光标才能读
f.close()
print(c) 2.6 a+ 追加读写
f = open("../day09/任天堂.txt",mode ="a+",encoding="utf-8")
f.write("哼哼哈哈,马里奥网球") # a+ 无论光标在何处,都只会在末尾添加内容,并且一开始光标会在末尾,无论先读后读也读不到东西
c = f.read()
f.close()
print(c) 2.7 rb wb ab 之前的模式都是针对文本类型,而这三个主要针对非文本(图片视频等)的内容
形式
f = open(r"c:\胡一菲.jpg",mode ="rb") #不需要填写编码格式,因为非文本都是以Bytes为单位的,取和写入的是字节
需要你掌握的,因为图片一般都是粘贴复制为主,复制非文本的模式
把胡一菲从c盘复制到d盘, 单纯的从bytes角度来复制的。 适用于所有文件
f1 = open(r"c:\胡一菲.jpg", mode="rb")
f2 = open(r"d:\胡二非.jpg", mode="wb")
for line in f1: # 分批量的读取内容
f2.write(line) # open()出来的结果可以使用read或者write. 根据mode来看
f1.close()
f2.close() 2.8 r+b w+b a+b #其操作形式和r+ w+ a+基本一致,只是文本类型不一样罢了 3.光标 形式 f.seek(偏移量,(0,1,2)) 注意偏移量是以byte为单位的,不是一个字符 f = open("../day09/任天堂.txt",mode ="r",encoding="utf-8")
f.seek(0) # == f.seek(0,0) 光标移动到开头处
f.readline()
f.seek(0,1) # 光标移动到当前位置处,偏移量为0
f.seek(0,2) # 光标移动到结尾处
print(f.tell()) # f.tell() 可采集到目前光标的所在位置,但仍要注意是以Byte为单位的,unicode一个中文三个Byte
f.close() 3.1 truncate() 截断文件. 慎用
f = open("ps4.txt",mode ="w+",encoding="utf-8")
f.write("ps4没有swith一半好玩")
f.seek(6)
f.truncate() #截取到之前光标所在的位置,后面的不要
f.truncate(12) #不管前面光标在哪里,都从头开始截取到byte12的地方,剩下的不要
f.close() 4.文件修改
文件修改: 只能将文件中的内容读取到内存中, 将信息修改完毕, 然后将源文件删除, 将新文件的名字改成老文件的名字
import os
import time
f1 = open("ps4.txt",mode ="r+",encoding="utf-8")
f2 = open("ps4.txt_副本", mode="w", encoding="utf-8")
c = f1.readline()
f2.write(c.replace("ps4","xbox"))
f1.close()
f2.close()
time.sleep(3)
os.remove("ps4.txt")
time.sleep(3)
os.rename("ps4.txt_副本","ps4.txt",) 此处采用了新方法写open 好处是可以不用写 f.close()
import os # 引入操作系统
import time # 引入时间函数
with open("ps4.txt",mode ="r+",encoding="utf-8") as f1,\
open("ps4.txt_副本", mode="w", encoding="utf-8") as f2:
c = f1.readline()
f2.write(c.replace("ps4","xbox"))
time.sleep(3) #延迟三秒
os.remove("ps4.txt")
time.sleep(3)
os.rename("ps4.txt_副本","ps4.txt",) 4.文件操作的应用
lis = []
with open("水果批发.txt",mode="r",encoding="utf-8") as f1:
c = f1.readline().strip() #此处即可以提取出标题也可将光标更改至第二行,方便后面抓取数据
lis1 = c.strip().split(",") # 读取第一行 编号,名称,价格,库存数,产地
for el in f1: # 1,凤梨,20,5202,台湾,1
dic = {}
for i in range(len(lis1)):
dic[lis1[i]] = el.strip().split(",")[i] #项目与实际项目内容匹配
lis.append(dic) # 将字典加到列表中存储
print(lis)

Python基础之文件的基本操作的更多相关文章

  1. Python基础:文件的基本操作

    # 打开文件(如果不存在则新建) 向其中写入 f = open('D:\\test.txt', 'w') f.write('hello world, i am here!') f.close() pr ...

  2. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  3. 第二篇:python基础之文件读写

    python基础之文件读写   python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使 ...

  4. 七. Python基础(7)--文件的读写

    七. Python基础(7)--文件的读写 1 ● 文件读取的知识补充 f = open('file', encoding = 'utf-8') content1 = f.read() content ...

  5. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  6. Python基础_文件的的处理及异常处理

    今天主要讲讲文件读写及异常处理. 一.文件操作 1.1 文件的创建及读 打开文件 open 函数  open(file,[option]) file 是要打开的文件 option是可选择的参数文件的打 ...

  7. 【穿插】Python基础之文件、文件夹的创建,对上一期代码进行优化

    在上一期妹子图的爬虫教程中,我们将图片都保存在了代码当前目录下,这样并不便于浏览,我们应该将同一个模特的图片都放在一个文件夹中. 今天我们就简单讲一下Python下如何创建文件.文件夹,今后就可以用上 ...

  8. Python基础--基本文件操作

    全部的编程语言都一样,学完了一些自带的数据机构后,就要操作文件了. 文件操作才是实战中的王道. 所以,今天就来分享一下Python中关于文件的一些基本操作. open方法 文件模式 这个模式对于写入文 ...

  9. python基础之文件处理

    读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...

随机推荐

  1. 推荐一个静态博客兼笔记的工具:WDTP

    简介 WDTP(山湖录)不止是一款开源免费的GUI桌面单机版静态网站生成器和简单方便的前端开发工具,更是一款跨平台的集笔记.录音.个人知识管理.写作/创作.博客/网站内容与样式管理等功能于一体的多合一 ...

  2. C# this.Invoke和this.BeginInvoke 最简单的写法

    https://blog.csdn.net/gtosky4u/article/details/20118813 this.BeginInvoke(new EventHandler(delegate { ...

  3. 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)

    深度学习课程笔记(十四)深度强化学习 ---  Proximal Policy Optimization (PPO) 2018-07-17 16:54:51  Reference: https://b ...

  4. Python实现机器学习算法:K近邻算法

    ''' 数据集:Mnist 训练集数量:60000 测试集数量:10000(实际使用:200) ''' import numpy as np import time def loadData(file ...

  5. Footnotes for tables in latex - 为latex的table加上footnotes

    参考: Footnotes for tables in LaTeX Footnote in tabular environment Footnotes for tables in latex - 为l ...

  6. 20165306 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验要求 1.提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图,截图上要有画图加水印,输入自己的学号.本提交点考查JUnit会不会使用,测试 ...

  7. MInio python

    # Install Minio library. # $ pip install minio # # Import Minio library. from minio import Minio # I ...

  8. RN 数据持久化存储服务API

    一些数据信息需要存储在手机内存中,比如用户的登录名密码 token啥的,所以这就需要了来存这些信息 在RN中 采用了AsyncStorage是一个简单的.异步的.持久化的Key-Value存储系统,它 ...

  9. JaveWeb 公司项目(2)----- 类模态窗口显示DIV并将DIV放置在屏幕正中间

    上一篇博客写的是通过隐藏显示进行div的替换,接下来需要在原有的div前添加一个div,进行表单的提交,需要将div放置在正中间,然后类似C#中的模态窗口,在进行完新弹出的div操作之后,才可以进行下 ...

  10. Java java.lang.SecurityException: Prohibited package name

    java.lang.SecurityException: Prohibited package name 提示java错误: Exception in thread "main" ...