Python基础——文件操作

Posted ojia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础——文件操作相关的知识,希望对你有一定的参考价值。

Python3 File

  首先贴上该方法的基本传入参数:

def open(file, mode=r, buffering=None, encoding=None, errors=None, newline=None, closefd=True)

  在实际操作中,我们比较常用的是files,mode和encoding这3个参数

  让我逐个介绍:

  •   file:我们要打开的文件的绝对路径,比如:“E:读书python8月815博客园实例xxx.xx”
  •  mode: 以什么方式打开
    •  r :只读模式【默认模式,文件必须存在,不存在则抛出异常】
    •    w:只写模式【不可读;不存在则创建;存在则清空内容】
    •    a:追加模式【可读;   不存在则创建;存在则只追加内容】,文件指针自动移到文件尾。
    •    "+" 表示可以同时读写某个文件
    •    r+:读写【可读,可写】
    •    w+:写读【可读,可写】,消除文件内容,然后以读写方式打开文件。
    •    a+:写读【可读,可写】,以读写方式打开文件,并把文件指针移到文件尾。
    •    "b"表示以字节的方式操作,以二进制模式打开文件,而不是以文本模式。
    •    rb:以二进制模式读取
    •   wb:以二进制模式写入
  • encoding:以什么编码打开,这个要注意,假如打开的编码和实际的编码不相同会出现乱码现象

  接下来会详细介绍每个操作

    读文件

技术分享图片
f = open("File.txt","r",encoding="utf-8")
print(f.read())
"""运行结果
这是测试文件的第一行
First
998
"""
读文件

      当不知道文件编码的时候

技术分享图片
import chardet

f = open("File.txt", "rb")
data = f.read()
print(chardet.detect(data))  # 运行结果:{‘encoding‘: ‘utf-8‘, ‘confidence‘: 0.99, ‘language‘: ‘‘}
# 当我们不知道文件编码格式的时候,我们可以导入chardet这个模块
# 使用其detect方法,会返回一个字典,confidence就是代表我们encoding的值的编码正确的概率
encoding = chardet.detect(data)["encoding"]
print(data.decode(encoding))
找编码

      写文件

技术分享图片
f = open("File.txt", "w", encoding="utf-8")
f.write("这是插入的新内容")
f.close()
f = open("File.txt", "r", encoding="utf-8")
print(f.read())  # 运行结果:这是插入的新内容
f.close()
# 当插入新内容时,文件会删除之前的全部内容,重新写入内容
写文件

      追加

技术分享图片
f = open("File.txt", "a", encoding="utf-8")
f.write("这是新内容。")
f.close()
f = open("File.txt", "r", encoding="utf-8")
print(f.read())
# 运行结果:这是旧的内容。这是新内容。
f.close()
追加

      读写模式

技术分享图片
f = open("File.txt", "r+", encoding="utf-8")
print(f.read())  # 结果是:这是旧的内容。这是新内容。
f.write("这是更新的内容。")
f.flush()  # 立刻将文件内容从内存刷到硬盘
print(f.read()) # 结果是:这是旧的内容。这是新内容。这是更新的内容。
f.close()  
读写模式

      写读模式

技术分享图片
f = open("File.txt", "w+", encoding="utf-8")
print(f.read())  # 结果是:不打印任何东西
f.write("这是更新的内容。")
print(f.read()) #结果是:在原文件看见:“这是更新的内容。” 这个写读模式只可以读写入的内容
f.close()
写读模式

   文件操作常用方法

 

技术分享图片
# 打开文件方法1:open()
f = open("File.txt", "r+")
# 打开文件方法2:with open() 这种方法操作完成后,会自动关闭不需要close()
with open("File.txt", "r+") as f:
    f.read()

# 读取文件内容(可指定每次读取字字符)
f = open(File.txt, r, encoding=utf-8)
ret = f.read(8)
print(ret)  # 结果是:这是File文件

# 读取数据(可指定读取字符数),存为list显示
f = open(File.txt, r, encoding=utf-8)
ret = f.readlines()
print(ret)  # 结果是:[‘这是File文件里面的内容。
‘, ‘Test‘]
f.close()

# 读取一行数据
f = open(File.txt, r, encoding=utf-8)
ret = f.readline()
print(ret)  # 结果是:这是File文件里面的内容。
f.close()

# 判断是否可读(不可读则报错" No such file or directory: ")
f = open(File.txt, r, encoding=utf-8)
ret = f.readable()
print(ret)  # 结果是:#True
f.close()

# 指定文件中指针的位置
f = open(File.txt, r, encoding=utf-8)
ret = f.read(8)  # 先读取8个字符
print(ret)  # 结果是:这是File文件
f.seek(0)  # 然后把指针移动到文件开头处
ret = f.read(8)  # 在重新读取
print(ret)  # 结果是:这是File文件
f.close()

# 获取指针位置
f = open(File.txt, r, encoding=utf-8)
ret = f.read(8)  # 先读取8个字符
print("pointer position:%s" % f.tell())  # 查看当前指针位置  结果是:pointer position:16
print(ret)
f.seek(0)  # 重置指定到启始位
print("pointer position:%s" % f.tell())  # 在查看指针位置    结果是:pointer position:0
f.close()

# 刷新文件内部缓冲区
f.flush()
文件操作常用方法

 

以上是关于Python基础——文件操作的主要内容,如果未能解决你的问题,请参考以下文章

python基础之文件基本操作

python如何操作excel 基础代码

python如何操作excel 基础代码

python常用代码片段总结

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?

[vscode]--HTML代码片段(基础版,reactvuejquery)