python基础之文件基本操作

代码的存储可以通过定义变量来存储,但是变量存储代码,这只能存在内存中,一旦关闭,原先的代码就会消失,所以我们需要把代码通过文件的形式,永久将代码保存在硬盘中,所以需要学会文件的基本操作。

文件的只读和只写模式分别为r和w

1. 先建立一个文件demo1.txt , 并写入内容

查看demo1文件中的内容

# 我们在桌面上操作文件:1.打开文件;2.读取文件; 3.关闭文件
f = open("demo1.txt", "r", encoding="utf-8")# f = open(r"C:\Users\dyl\Desktop\demo3.txt", "r", encoding=‘utf-8‘)  r代表转义,后面的r代表read模式
print(f.read()) f.close() """ 1. 打开文件操作 demo1.txt 文件的路径 文件的路径可以是绝对路径,也可以是相对路径,绝对路径比较死,如果文件的路径发生了改变,那么打开文件的路径就要相对地改,所以我们尽量用相对路径如果是绝对路径,需要用r""转义符

"r" 是只读模式

encoding 是指定文件的编码方式
如果桌面文件的编码方式与指定的编码方式不一样,那么就会报错
(unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \ UXXXXXXXX escape

2.读取文件内容
读取文件内容的方法:read
调用方法 变量 f.read()
打印读取的内容 print(f.read())

3. 关闭文件
文件对象打开后,一定要记得关闭,如果不关闭,这个文件就会占用操作系统的资源,而且操作系统同一时间打开的文件数量是有限的
f.close() 

"""

2. 只写模式

# 只写入模式 w
s = """  春晓春眠不觉晓处处闻笛鸟夜来风雨声花落知多少"""
f = open("demo1.txt", "w", encoding="utf-8")# writelines 和write的用法相似,但是writelines可以传入字符串,也可以传入字符序列,但是不能传入数字,每个元素之间如果要换行,就需要用\n换行符,write只能传入字符串
f.write(s)
f.close()
# 写入之后读取
f = open("demo1.txt", "r", encoding="utf-8")
print(f.read())
f.close()

春晓
春眠不觉晓
处处闻笛鸟
夜来风雨声
花落知多少

注意:文件对象打开后,一定要记得关闭,如果不关闭,这个文件就会占用操作系统的资源,而且操作系统同一时间打开的文件数量是有限的

只读和只写时,都是先将内容读或者写到缓存区里面,然后等缓存区的空间都满了之后,操作系统就会将内容写到硬盘里面,缓存区里面的内容每满一次,操作系统就会写一次。这样写的劣处就是,我们写的内容可能都没有写到硬盘里面,一旦断电,写的东西就会消失,所以我们需要flash,不用等操作系统来写,直接刷新缓存区,保存内容
f = open("demo.txt", "w", encoding="utf-8")
f.writelines(["China\n", "World\n", "Fuiture\n"])
# 刷新缓存区,保存内容
f.flush()
f.close()

f = open("demo.txt", "r", encoding="utf-8")
print(f.read())
f.flush()
f.close()
# 关闭语句f.close(),可以节省内存中缓存资源,所以这句一定要带上,但是每对文件增删改查一次,就需要写一次,这并不方便,with语句就可以省去这一步

with open("demo1.txt", ‘r‘, encoding=‘utf-8‘) as f:
    print(f.read())

春晓
春眠不觉晓
处处闻笛鸟
夜来风雨声
花落知多少

with只写进入

# 关闭语句f.close(),可以节省内存中缓存资源,所以这句一定要带上,但是每对文件增删改查一次,就需要写一次,这并不方便,with语句就可以省去这一步

with open("demo1.txt", ‘r‘, encoding=‘utf-8‘) as f:
    print(f.read())

s2 = """
满城尽带黄金甲,不破楼兰终不还。
"""
with open("demo1.txt", ‘w‘, encoding=‘utf-8‘) as f:
    f.write(s2)

with open(‘demo1.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
    print(f.read())

满城尽带黄金甲,不破楼兰终不还。

3. tell和seek

tell() 以bytes为单位,从文件头到当前指针所在的位置seek() 以bytes为单位,光标的偏移量
s3 = s2.encode()
print(s3)  # b‘\n\xe6\xbb\xa1\xe5\x9f\x8e\xe5\xb0\xbd\xe5\xb8\xa6\xe9\xbb\x84\xe9\x87\x91\xe7\x94\xb2\xef\xbc\x8c\xe4\xb8\x8d\xe7\xa0\xb4\xe6\xa5\xbc\xe5\x85\xb0\xe7\xbb\x88\xe4\xb8\x8d\xe8\xbf\x98\xe3\x80\x82\n‘
# utf-8编码中文字符,是三个字节编码一个中文字符
with open("demo1.txt", ‘w‘, encoding=‘utf-8‘) as f:
    f.write(s2)

with open(‘demo1.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
    print(f.tell())   # 0  光标的位置
    print(f.read())
    print(f.tell())   # 52  光标的位置
    f.seek(0)   # 将光标移到最前面
    print(f.tell())  # 0

这个时候,文件已经建立,如果文件不存在,那么

r和w  表示只读和只写  文件存在的情况下,写入会覆盖掉原先的内容
with open("demo.txt", ‘r‘, encoding=‘utf-8‘) as f:
    print(f.tell())
    print(f.read())

# w只写, 文件已经存在,会覆盖掉原先的内容,如果文件不存在,就会创建一个文件
with open("demo.txt", "w", encoding="utf-8") as f:
    f.write("中国加油")

with open("demo2.txt", ‘w‘, encoding=‘utf-8‘) as f:
    f.write("hello world!!!")

4. 非文本内容的基本操作,rb和wb

rb和wb 非文本的只读和只写

li = ""
with open("函数内循环.png", "rb") as f: # 这本身就是二进制的,所以不用指定编码格式
# 二进制我们一般不会打印出来,而是用一个变量来接收,存起来
    li = f.read()

# 将这个变量写入到一个新的图片文件里面
with open("test.png", "wb") as f:
    f.write(li)

5. a 追加模式

如果文件原本就存在,就在原本的文件的末尾加入内容,如果文件不存在,那么创建新文件,并写入内容

a 追加

with open("demo.txt", "r", encoding="utf-8") as f:
    print(f.read())

with open("demo.txt", "a", encoding="utf-8") as f:
    f.write("\n将军百战死")

with open("demo.txt", "r", encoding="utf-8") as f:
    print(f.read())

6. r+    w+   a+

r+ w+ a+
"""
r+: 读写,指针在文件开头
w+:  读写,文件存在的话,那么写入内容,如果文件不存在,那么创建文件新文件,写入内容
a+:  读写,文件存在的话,则在文件末尾追加,如果文件不存在,那么创建新文件,并写入内容
"""

with open("demo2.txt", "r+", encoding="utf-8") as f:

    f.write("\nhello world!!!   come on!!!")
    print(f.read())
    print(f.tell())

with open("demo3.txt", "w+", encoding="utf-8") as f:
    f.write("\n你好世界")
    print(f.read())

with open("demo1.txt", "a+", encoding="utf-8") as f:
    f.write("\n中国你好")
    print(f.read())

原文地址:https://www.cnblogs.com/zgzeng/p/12238542.html

时间: 2024-10-20 18:00:27

python基础之文件基本操作的相关文章

python 基础之文件基本操作01

一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r :只读[只读:默认模式,指针在开头] w :只写[只写:存在则覆盖,不存在则创建] a :追加[追加:存在则追加,不存在创建在写入] r+ :读写[读写:指针默认在开头,写入时会覆盖目标位置内容] w+ :写读[写读:存在则覆盖,不存在则创建] a+ :写读[写读:存在则追加,不存在创建在写入] rb 或 r+b [以二进制格式打开一个文件用于只读

python基础之文件读写

python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名,返回的是一个列表:os.listdir("指定路径") 函数用来删除一个文件:os.remove("文件路径") 删除多个目录:os.removedirs(&

Python 基础 - Json文件读写

JSON介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). 在python中,JSON 由列表和字典组成. 序列化的两个模块中,json模块是用于

python基础(三)文件操作和集合

一.文件操作 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 1.文件基本操作: f = open('file.txt','r') #以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读, 在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open frist_line = f.readline()#获取文件的第一行内容,返回的是一个list print(frist

第六篇:python基础之文件处理

阅读目录 一.文件处理流程 二.基本操作 2.1 文件打开模式 2.2 文件内置函数flush 2.3 open函数详解 一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 new_fn = open('new.txt','r') print new_fn.read() new_fn.write(new_line) new_fn.close() 上下文管理方式 #with open('a.txt') as fn: 2.1 文件打开模式 1 文件句柄 = o

Python基础入门-文件读写

在python中文件的读写操作应该的十分广泛.比如,我们经常会读取txt获取一些信息,用来参数化操作.当热不局限于这些,关于文件读写方面的知识有很多,说一天可能都说不完,但是我们今天呢?主要跟大家分享的是python的文件读写中一些比较实用.我们经常用的知识.来开始表演吧~~~~ 在python如如何创建一个文件呢?我们可以使用open()函数,这个函数里面有很多的参数,看一下它的基本机构: open(name[, mode[, buffering]]) name : 一个包含了你要访问的文件名

Python基础之文件处理

一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 二.文件处理的基本操作流程 f = open('chenli.txt') #打开文件 first_line = f.readline() print('first line:',first_line) #读一行 data = f.read()# 读取剩下的所有内容,文件大时不要用 print(data) #打印读取内容 f.close() #关闭文件 文件编码: 注意:文件保存时要注意文件的编码方式,在没

python学习笔记-文件基本操作(二)

在上一篇文章中,简单介绍了打开文件的方法以及关于读.写.追加的操作,点击此处查看. 在此篇文章中,继续介绍另外一种打开文件的方法和几种同时读写的模式. 一.打开文件方法:with 使用file()或open()打开文件时,最后一定要使用close()方法来关闭文件,为了避免忘记使用,还使用使用with的方法开打开文件,代码如: with open ('文件名','模式') as f: ... 其中,f为文件句柄,该打开文件的方式等同于f=open('文件名','模式') 此方法也可以一次打开多个

Python基础之文件、目录

1.文件操作. (1)文件创建. (2)文件读取. (3)文件重命名. (4)文件删除. 2.目录操作. (1)目录创建. (2)目录删除. He.py #coding=utf8 import os #创建文件 def writeFile(fileName,str): fs=open(fileName,"w+") fs.write(str) fs.close() print("文件"+fileName+"创建成功") #读取文件内容 def re