## Python文件写入

保存数据的最简单的方式之一是将其写入到文件中。通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在:你可以在程序结束运行后查看这些输出,可与别人分享输出文件,还可编写程序来将这些输出读取到内存中并进行处理。

要写入现有文件,必须向`open()`函数添加参数:

`"a"`\-追加-将追加到文件末尾

`"w"`\-写-将覆盖任何现有内容

示例,打开文件“ demofile2.txt”,并将内容附加到该文件:

```

f = open("demofile2.txt", "a")

f.write("Now the file has more content!")

f.close()

#open and read the file after the appending:

f = open("demofile2.txt", "r")

print(f.read())

```

示例,打开文件“ demofile3.txt”并覆盖内容:

```

f = open("demofile3.txt", "w")

f.write("Woops! I have deleted the content!")

f.close()

#open and read the file after the appending:

f = open("demofile3.txt", "r")

print(f.read())

```

\*\*注意:\*\*w方法将覆盖整个文件。

*****

## 创建一个新文件

要在Python中创建新文件,请使用`open()`带有以下参数之一的方法:

`"x"`\-创建-将创建文件,如果文件存在则返回错误

`"a"`\-附加-如果指定的文件不存在,将创建一个文件

`"w"`\-写入-如果指定的文件不存在,将创建一个文件

示例,创建一个名为“ myfile.txt”的文件:

```

f = open("myfile.txt", "x")

```

结果:创建了一个新的空文件!

示例,如果不存在,请创建一个新文件:

```

f = open("myfile.txt", "w")

```

## 写入空文件

要将文本写入文件,你在调用open()时需要提供另一个实参,告诉Python你要写入打开的文件。为明白其中的工作原理,我们来将一条简单的消息存储到文件中,而不是将其打印到屏幕上:

```

write_message.py

filename = 'programming.txt'

with open(filename, 'w') as file_object:

file_object.write("I love programming.")

```

在这个示例中,调用open()时提供了两个实参。第一个实参也是要打开的文件的名称;第二个实参( 'w')告诉Python,我们要以写入模式打开这个文件。打开文件时,可指定读取模式('r')、 写入模式('w')、 附加模式('a')或让你能够读取和写入文件的模式('r+')。如果你省略了模式实参, Python将以默认的只读模式打开文件。

如果你要写入的文件不存在,函数open()将自动创建它。然而,以写入('w')模式打开文件时千万要小心,因为如果指定的文件已经存在, Python将在返回文件对象前清空该文件。

我们使用文件对象的方法write()将一个字符串写入文件。这个程序没有终端输出,但如果你打开文件programming.txt,将看到其中包含如下一行内容:

```

programming.txt

I love programming.

```

相比于你的计算机中的其他文件,这个文件没有什么不同。你可以打开它、在其中输入新文本、复制其内容、将内容粘贴到其中等。

注意 Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。

## 写入多行

函数write()不会在你写入的文本末尾添加换行符,因此如果你写入多行时没有指定换行符,文件看起来可能不是你希望的那样:

```

filename = 'programming.txt'

with open(filename, 'w') as file_object:

file_object.write("I love programming.")

file_object.write("I love creating new games.")

```

如果你打开programming.txt,将发现两行内容挤在一起:

I love programming.I love creating new games.

要让每个字符串都单独占一行,需要在write()语句中包含换行符:

```

filename = 'programming.txt'

with open(filename, 'w') as file_object:

file_object.write("I love programming.\n")

file_object.write("I love creating new games.\n")

```

现在,输出出现在不同行中:

```

I love programming.

I love creating new games.

```

像显示到终端的输出一样,还可以使用空格、制表符和空行来设置这些输出的格式。

## 附加到文件

如果你要给文件添加内容,而不是覆盖原有的内容,可以附加模式打开文件。你以附加模式打开文件时, Python不会在返回文件对象前清空文件,而你写入到文件的行都将添加到文件末尾。如果指定的文件不存在, Python将为你创建一个空文件。

下面来修改write\_message.py,在既有文件programming.txt中再添加一些你酷爱编程的原因:

```

write_message.py

filename = 'programming.txt'

with open(filename, 'a') as file_object:

file_object.write("I also love finding meaning in large datasets.\n")

file_object.write("I love creating apps that can run in a browser.\n")

```

我们打开文件时指定了实参'a',以便将内容附加到文件末尾,而不是覆盖文件原来的内容。我们又写入了两行,它们被添加到文件programming.txt末尾:

```

programming.txt

I love programming.

I love creating new games.

I also love finding meaning in large datasets.

I love creating apps that can run in a browser.

```

最终的结果是,文件原来的内容还在,它们后面是我们刚添加的内容。

python多行写入文件_写入文件相关推荐

  1. python包的中 _init _.py文件介绍

    python包的中 _init _.py文件介绍 我们新建python包时常常会看到一个__init _.py文件. 作用介绍: ​ 一:这个文件是属于python包的,这个文件用作于标识python ...

  2. c fscanf 按行读取文件_语言 文件 看这一篇就够了

    码字不易,对你有帮助 点赞/转发/关注 支持一下作者 微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新 想看更好排版,可以看原文 网页链接​mp.weixin.qq.com 文件 格式化的输 ...

  3. 用python按行合并多个txt文件

    我今天在网上查一下关于"用python按行合并多个他系统文件"相关的内容,结果找到的是要么按文件合并要么合并两个文件.所以,我自己写了合并代码,希望对大家有所帮助. 在文件路径 h ...

  4. python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  5. cmd 生成wsdl文件_.wsdl文件生成.cs文件

    1.打开VS文件命令行工具(一般在安装文件的Common7\Tools\Shortcuts下面例如[E:\VS2013安装程序\Common7\Tools\Shortcuts\VS2013 x64 本 ...

  6. python 命令行解析模块_【Python模块】命令行解析--argparse

    python命令行解析 前言 当你还在使用 if len(sys.argv) > 1: 这样的方式判断选项和参数的时候,是否已意识到已经落伍了. 我在bash中用过getopt getopts, ...

  7. linux禁止客户端上传文件_图片/文件上传如此简单|macOS 图床客户端 uPic

    前言 相信很多人在写作(特别是需要多平台发布)的时候都会因为插图而增加工作量: 平台图片外链不允许在网站外部访问. 使用云图床服务上传流程复杂. 那么这些问题有没有办法解决呢,答案肯定是"有 ...

  8. formdata上传文件_大文件分片断点上传实现思路以及方案

    作者:yeyan1996| 来源:掘金https://juejin.im/post/5dff8a26e51d4558105420ed 前言 我在面试的时候确实被问到了这个问题,而且是一道在线 codi ...

  9. linux删除文件夹下所有文件_手机文件夹全是英文不敢删?删除这6个文件夹,瞬间多出几个G...

    手机使用时间久了,总会面临内存不够的情况,一般情况下我们都会使用手机里自带的手机管家进行清理,但是每次的效果都很一般,可是我们想要对单独的文件夹进行清理时,又会发现文件夹全是英文的,不敢随意乱删,那么 ...

  10. 安卓打开rpm文件_微信文件如何分享到QQ?教你一招,不管什么手机都能行

    你是否在工作中遇到这样的难题:工作伙伴在微信给你发了一份重要文件,你想要用手机转发给QQ的好友,但微信和QQ之间又不支持直接分享,这怎么办呢? 是不是有人为了分享文件,特地从手机文件管理器进入到微信. ...

最新文章

  1. [jstl] forEach标签使用
  2. hive避免MR的情况
  3. 笔记 | 《机器学习》半监督学习
  4. CentOS操作系统keepalived安装步骤
  5. [Java] 蓝桥杯BASIC-25 基础练习 回形取数
  6. HDOJ1548(BFS)
  7. 软件开发 外包_软件开发外包:选择它的理由
  8. 简述线性反馈移位寄存器
  9. 【控制】动力学建模举例 --> 牛顿-欧拉法
  10. 分享996个实用的JavaScript特效你要的全在这里
  11. 企业如何软件商业化? .
  12. jQuery插件的使用
  13. Duplicate Symbols for Architecture解决办法
  14. 地图经纬度坐标转换BD-09/GCJ-02/WGS84坐标转换
  15. 2022-2028年全球与中国印刷电路板材料行业产销需求与投资预测分析
  16. android 支付sdk ----libPaySdk
  17. Quartus II 13.1的安装与注册
  18. Mysql笔试题(转载)
  19. Access数据库——Cookie注入
  20. Qt error: /usr/bin/ld: cannot find -lGL: No such file or directory

热门文章

  1. wifi控制基于STM32与NFC的万能红外遥控器—毕业设计(2)
  2. Envi处理大气校正时报错,怎么解决呀
  3. linux 代码编辑器软件下载,Visual Studio Code下载
  4. rda分析怎么做_科学网—如何用R语言vegan包进行RDA/CCA分析 - 刘宏金的博文
  5. 关于GHOST恢复提示找不到GHOSTERR.TXT的文件(转)
  6. 功率半导体器件的研究意义
  7. 聊聊学习型组织的五项修炼(下)
  8. linux下Cacti网络监控之监控华为quidway s2000交换机
  9. ubuntu16安装搜狗输入法教程
  10. 二维傅里叶变换频谱图的含义