码迷,mamicode.com
首页 > 其他好文 > 详细

文件操作

时间:2019-06-13 21:58:00      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:文件的   国内   一个   频率   top   loaded   user   换行   操作文件   

1.文件操作初识

操作文件的方式:

f = open("文件路径","mode="模式",encoding = "编码)

open: 调用操作系统打开文件.

mode: 对文件的操作方式.

encoding: 文件的编码,而存储编码一定要统一.

在国内: win :gbk Linux: utf- 8 Mac: utf- 8

最常用的就是utf - 8

f 叫做文件句柄-------操作文件时相当于一个东西的把手

技术图片

技术图片

技术图片

 

文件操作都有:

读: r

写: w(这个是清空了重新写) , a(这个则是在后面追加着写)

读: rb

写: wb, ab

2.文件的读

: r rb r+ r+b

r: 这种读的模式是文件全部读完之后,接着再次读取就没有内容

f = open ("a",mode = "r",encoding = "gbk")

content = f . read() 全部读取

c1 = f . read(4) 这个值读取字符,数字代表读取几个字符

print(f . readline(3)) 读取一行中的几个字符,数字代表读取着行中的几个字符

print(f.readlines()) 这个是一行一行读取,存储在列表中 \n代表换行

路径

F:\a\111.txt 这个是绝对路径,从磁盘的根处查找

相对路径 :相对于当前文件进行查找

import os

print(os.getcwd()) 这个是查看当前工作路径的操作

 

当文件特别大时,要防止内存溢出,所以要一行一行读取

for i in f:

print(i) 迭代读取

3.文件的写

: w:清空写,

1.先判断有没有文件存在,文件存在清空文件,文件不存在创建文件

2.写入内容

a: 追加写,在文件的末尾添加

w 在进行写的操作时,一般分了两步:

没有文件,创建文件,有文件清空文件再写入

 

f = open("day08",mode = "w",encoding = "utf - 8")

f.write("123")

f.close() 关闭文件

 

操作文件一般:

  1. 打开文件

  2. 操作文件

  3. 关闭文件

 

f = open("a",mode = "r",encoding = "gbk")

print(f.read())

f.close() 关闭文件后就不能在进行读取了

 

f = open("a",mode = "a",encoding = "gbk")

f.write("123")

这个是在文件末尾添加

4.读以及写非文本文件

f = open("1.jpg",mode="rb")

rb: 不能指定编码,读非文本文件(不能指定编码意思是不能指定gbk之类的,encoding不能写)

这个时候读是按字节读出来的

wb. ab 不能指定编码,写非文本文件

print(f.read()) read() 全部读取

 

import requests

ret = requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png")

f = open("2.jpg",mode="wb")

f.write(ret.content)

f.close() 这是一个小的爬虫

5.文件的+模式

r:读 r+: 读写

w:写 w+:写读

a: 写 a+:写读

r+:读写 先读后写

正确的格式: -----后期开发中使用频率不是很高

f = open("day",mode="r+",encoding="utf-8")

print(f.read())

f.write("你好啊")

 

错误示范----这是因为先写的话后面再读的时候光标就会在最后的地方,然后就读取不到内容

f = open("day8",mode="r+",encoding="utf-8")

f.write("你好啊")

print(f.read()

 

w+ 写读 先写后读

f = open("day08",mode="w+",encoding="utf-8")

f.write("你好啊安达市多")

print(f.read())

 

a+ 追加写读 先写后读

f = open("a",mode="a+",encoding="gbk")

print(f.tell()) # 查看的是字节

f.seek(0)

print(f.read(1)) # 字符

f.write("真的废物")

其他操作:

查看光标: tell() 返回值,返回的值就是当前光标的位置,是以字节的大小呈现

移动光标:

seek(0,0) 移动光标到文件起始位置

seek(0,1) 移动光标到文件当前位置

seek(0,2) 移动光标到文件末尾位置

seek(3) 按照字节调整,使用编码utf-8时最小单位是3,gbk时是2

6.文件的另一种打开方式

with.open("day08",mode="r",encoding="utf-8")as f,\

open("a",mode="w",encoding="gbk")as f1:

print(f.read())

f1.write("真饿")

上下文管理,后面会用到

使用with open可以同时操作多个文件,也可以帮助自动关闭文件

7.文件的修改

with open("原文件")as f,open("新文件")as f1:

f.for循环的读取

f1.for循环的写入

with open("day8",mode="r+",encoding="utf-8")as f:

content = f.read()

content = content.replace("您","你")

f.seek(0,0)

f.write(content)

 

with open("day8",mode="r",encoding="utf-8")as f,\

open("new_day8",mode="a",encoding="utf-8")as f1:

for i in f:

content = i.replace("你","我")

f1.write(content)

 

 

import os

os.rename("原文件名字",备份名字") # 对原文件进行备份

os.rename("新文件名字","原文件名字") # 把新文件改成原文件的名字

文件操作

标签:文件的   国内   一个   频率   top   loaded   user   换行   操作文件   

原文地址:https://www.cnblogs.com/dangpanfei/p/11019750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!