全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

python创建文件对象

时间:2023-06-21 17:19

人气:

作者:admin

标签: 函数 

导读:2.1. 创建文件对象 **open() 函数用于创建文件对象,基本语法格式如下:** open(文件名[,打开方式]) 注意: 如果只是文件名,代表在当前目录下的文件. 文件名可以录入全路径,比如: D:\\...

2.1.

创建文件对象

**open()

函数用于创建文件对象,基本语法格式如下:** open(文件名[,打开方式])

注意:

  • 如果只是文件名,代表在当前目录下的文件.

    文件名可以录入全路径,比如:D:\\a\\b.txt 可以使用原始字符串 r“d:\\b.txt” 减少 \\ 的输入 ,

    因此以上代码可改写成 f = open(r"d:\\b.txt","w")

  • 作为入参的打开方式如下(经常会用!!!)图片

  • 文本文件对象和二进制文件对象的创建如果是二进制模式

    b ,则创建的是二进制文件对象,处理的基本单元是“字节” 如果没有增加模式 b

    ,则默认创建的是文本文件对象,处理的基本单元是“字符”

2.2.

文件的写入

文本文件的写入一般就是三个步骤:

  • 创建文件对象
  • 写入数据
  • 关闭文件对象

基本文件的写入操作

实操代码

# 1.使用open()方式
f = open(r"d:\\a.txt", "a")
s = "TimePause\\n时间静止\\n"
f.write(s)
f.close()

结果展示

图片

中文乱码

代码编写时

windows

操作系统默认的编码是 GBK , Linux 操作系统默认的编码是 UTF- 8 .**当我们用

open() 时,调用的是操作系统相关api来打开的文件,并且默认的编码是 GBK 但是由于我们通常习惯将所有代码编码都设置成 UTF- 8 .,

因此在打开时会出现乱码问题, 如下图所示**

图片解决方案: 按照上图提示,

将文本编码设置成 GBK格式读取即可图片注意: 我们还可以通过指定编码来解决中文乱码问题.

因为我们将pycharm文本读写编码都设置成

utf-8, 因此只要 **我们在文件写入的时候规定编码为

utf-8(默认gbk)** , 那么我们在读取时就不会出现乱码. 如下代码

实操代码

# 【示例】通过指定文件编码解决中文乱码问题
f = open(r"d:\\bb.txt", "w", encoding="utf-8")
f.write("一个有温情的小站\\n时间静止不是简史")
f.close()

控制台输出时****问题描述

我们一般习惯把pycharm所有字符编码设置成utf-8时.

在我们进行网络请求时, 有时候会返回乱码问题, 如下图

图片

图片

问题分析

因为我们在

pycharm 设置所有字符编码均为 UTF-8, 但是**通过网络请求得到GBK格式的文本,

然后我们仍以 UTF-8 编码去解码就会出现乱码**

解决方案

可以将项目编码设置成GBK格式即可;

也可以通过文本操作代码对得到的数据进行GBK格式读取 亦或者在写入时, 直接将编码声明为UTF-8

图片图片

write()/writelines()写入数据

  • write(a) :把字符串

    a 写入到文件中

  • writelines(b) :把字符串列表写入文件中,不添加换行符

实操代码

# 【操作】添加字符串列表数据到文件中
f = open(r"d:\\bb.txt", 'w', encoding="utf-8")
s = ["什么鬼\\n"] * 3  # 通过 \\n实现手动换行
f.writelines(s)
f.close()

close()关闭文件流

由于文件底层是由操作系统控制,所以我们打开的文件对象必须显式调用

close() 方法关闭文件对象. 当调用 close() 方法时,首先会把缓冲区数据写入文件(也可以直接调用 flush()

方法),再关闭文件,释放文件对象

注意:

  • close()一般结合异常机制的

    finally 一起使用

  • 也可以**通过

    with 关键字实现无论何种情况都能关闭打开的文件对象(推荐)**

实操代码

# 【操作】结合异常机制的 finally ,确保关闭文件对象
# "a" 设置打开方式为追加模式
try:
    f = open(r"d:\\c.txt", "a")
    s = "来自深渊"
    f.write(s)
except BaseException as e:
    print(e)
finally:
    f.close()

with语句(上下文管理器)

with关键字

(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with块 ,都能确保文件正确的关闭,

并且可以在代码块执行完毕后自动还原进入该代码块时的现场

实操代码

# 【操作】使用 with 管理文件写入操作
s = ["齐格飞"] * 3
with open(r"d:\\cc.txt", "w") as f:
    f.writelines(s)
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信