0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python创建文件对象

麦辣鸡腿堡 来源:Python都知道 作者:Python都知道 2023-06-21 17:19 次阅读

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)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83473
收藏 人收藏

    评论

    相关推荐

    《Visual C# 2008程序设计经典案例设计与实现》---动态创建文件并输入文件内容

    《Visual C# 2008程序设计经典案例设计与实现》---动态创建文件并输入文件内容.zip
    发表于 07-08 13:27

    labview中在创建文件函数时出现 memory is full 的问题

    `labview中在创建文件函数时出现 memory is full 的问题,这个问题是不是由于没有加入关闭文件函数引起的呢`
    发表于 12-25 14:12

    3分钟看懂Python面向对象

    Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python
    发表于 06-08 14:20

    请问FATFS创建文件夹时如何添加创建时间?

    如题!通过实现get_fattime函数,创建文件时是可以添加“创建时间”的,但是创建文件夹时却不能,请各位帮忙,谢谢!另外,f_utime添加的是“修改时间”
    发表于 12-13 08:44

    Hive的创建文件数限制的解决方法

    解决Hive创建文件数过多的问题
    发表于 04-29 11:12

    怎么在SD卡里面创建文件

    如何在SD卡里面创建文件啊,不完全手册那个试验说了这个吗
    发表于 09-23 04:05

    如何设置一个路径创建文件并写入数据?

    你好,我使用的procmodule接收超声波传感器的数据并通过串口通信的终端显示。我的问题是,可以对存储在文件terminalbe接收数据(.txt。docx格式)??文件处理系统是否支持PROC?如果是,如何设置一个路径创建文件
    发表于 11-06 09:23

    DFS创建文件失败是为什么

    需要创建文件 static uint8_t Creatdir = 1;//用来表示是否需要创建文件夹 static int fd = 0; int res_sync; int res_write
    发表于 04-12 10:06

    为什么用DFS创建文件会失败呢?

    ;//用来表示是否需要创建文件static uint8_t Creatdir = 1;//用来表示是否需要创建文件夹static int fd = 0;int res_sync;int res_write
    发表于 01-11 14:25

    dos命令怎么用_DOS下创建文件文件

    DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。本文将详细讲解dos命令怎么用以及DOS下怎么创建文件文件夹。
    发表于 01-17 16:15 5.6w次阅读
    dos命令怎么用_DOS下<b class='flag-5'>创建文件</b>、<b class='flag-5'>文件</b>夹

    如何使用WEBENCH®电源系统创建文档?

    使用WEBENCH®Power Designer创建文
    的头像 发表于 08-20 00:03 1514次阅读

    在Linux中如何创建文件

    使用cat创建文件时,以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容。输入结束时按Ctrl+d退出并保存文件
    发表于 05-31 09:23 5998次阅读
    在Linux中如何<b class='flag-5'>创建文件</b>

    干货:总结Java中创建文件的五种最佳实践方法(附源码)

    在java中有很多的方法可以创建文件文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法。
    的头像 发表于 08-28 11:29 6608次阅读
    干货:总结Java中<b class='flag-5'>创建文件</b>的五种最佳实践方法(附源码)

    CH376创建文件后在电脑上不识别的问题

    有个项目要用到大容量的存储设备来存储测量数据,并按日期自动创建表格,开始用的STM32F103加FATFS读写SD卡,没问题,后来想改成U盘的,看到沁恒的CH376内建文件系统和Usb的固件
    发表于 01-12 19:28 2次下载
    CH376<b class='flag-5'>创建文件</b>后在电脑上不识别的问题

    介绍Python文件创建与写入的基本方法

    Python 文件写入和创建Python 开发中必须掌握的技能之一。在本文中,我们将介绍 Python
    的头像 发表于 04-27 09:22 2893次阅读