python3 下的文件输入输出特性以及如何覆盖文件内容和接下去输入

  今天碰到了一个非常有意思的python特性。本来我是想打开一个文件,在文件的末尾接下去输入一些内容的,代码如下:

f = open(‘test.txt‘, ‘r+‘)
f.write(content)
f.close()

  结果发现无论我写什么东西,content的内容总是会从文件开头写入,并且覆盖掉原来的内容。查了官方文档,也不知道应该怎么做。

  但偶然间我发现了接到末尾写入的方法,代码如下:

f = open(‘test.txt‘, ‘r+‘)
f.read()
f.write(content)
f.close()

  没错,只是添加了一行f.read(),之后你的write函数就会自动接到末尾进行写入了。去翻了下官方文档,貌似没有提及这个。

read(size)

Read and return at most size characters from the stream as a single str. If size is negative or None, reads until EOF.

write(s)

Write the string s to the stream and return the number of characters written.

时间: 2024-10-03 16:44:33

python3 下的文件输入输出特性以及如何覆盖文件内容和接下去输入的相关文章

Linux下如何使cp命令不提示覆盖文件

在Linux下,如果希望将文件file拷贝到目录dir下,可以执行:cp file dir但如果dir下已经存在一个名为file的文件的时候,系统总是会提示是否覆盖file. 这是一个很好的功能,它能够防止我们由于疏忽对系统造成的损害,但如果不希望看到这些交互的提示信息呢?比如我们需要写一个脚本,将某些文件安装到指定的目录下,这时我们肯定不希望看到提示. 可以试一下 -f 选项,-f 一般表示强制执行(force). cp -f file dir 但好像结果并不像我们希望的那样,系统依然会有覆盖

matlab从文件夹名中获得该文件夹下所图像文件名

function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path) % 函数功能:从文件夹名中获得该文件夹下所图像文件名 % 函数输入:path 为文件夹路径 % 函数输出:s 表示状态,当为0时表示正确 % nameC 表示获得的图像名的胞体cell % 函数历史:v0.0 @2013-01-27 created by Aborn cmd = sprintf(

如何在linux系统下对文件夹名有空格的文件夹进行操作

http://www.2cto.com/os/201409/335119.html 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处理才能实现以上功能. (1)创建文件夹 mkdir my\ first 这条命令创建了文件夹"my first",文件夹名中my和first之间有一个空格,在命令行中需要 添加一个"\"符号和一个空格的组合 mkdir my\ \ tow 这条命令创建了文件夹"

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

python3下安装aiohttp遇到过的那些坑

python3下安装aiohttp遇到过的那些坑 最近需要用到aiohttp这个库,在安装过程中遇到很多坑.google.baidu后,依然没有找到合适的解决方案. 后来通过去python官方的PyPI查看aiohttp库,才发现一些问题,几经折腾,最后终于成功的在python3下安装’aiohttp’. 在这里跟大家分享一下被坑的过程. 先说一下环境.win7,64位.电脑里安装的python有3.5和3.6两个版本. 1. python3.6下安装aiohttp python3.6环境下,已

CentOS下安装JDK6u21和设置环境变量bin文件

1.先通过SSH登录到Linux系统中,通过SSH文件管理工具把Linux的JDK安装包上传到/home/acm/JavaTools/JDK目录: 2.进入/home/acm/JavaTools/JDK目录,用cp命令$ cp ./jdk-6u21-linux-i586.bin /home/acm 把JDK安装文件 jdk-6u21-linux-i586.bin 复制到acm用户的根目录下: 3.进入/home/acm 执行chmod +x jdk-6u21-linux-i586.bin 为jk

xp下删除windows7,无法删除windows7文件夹,无法删除windows7文件,双系统卸载,取得文件权限

http://blog.csdn.net/lanmanck/article/details/5722050 -------------------------------------------------- 找了比较久,这个强人写的,很佩服,贴出来共享: http://hi.baidu.com/wjg750926/blog/item/4046a84ab171d92b08f7ef27.html 一些网友在Xp 下安装了Windows 7(适用于Vista/WS2008) 双系统,试用一段时间之后

windows 10(64位)下实现vs20120C++调用matlab r2014a编写的m文件生成的.dll,.lib,.h文件

如题. 环境:windows10 64位,vs 2010,matlab r2014a,配置成功,生成.dll,.h,.lib文件成功. 步骤一:matlab动态链接库文件编译生成 1)编写示例文件add.m function c = add(a, b); c = a + b; end; 2)编译打包 进入matlab主界面,在控制台输入deploytool命令,调用打包程序,选择"Library Compiler": 3)进入库文件编译程序界面,根据需要勾选C++ Shared Lib

mac下查看.mobileprovision文件及钥匙串中证书.cer文件

mac下查看.mobileprovision文件及钥匙串中证书.cer文件 一. mobileprovision文件查看 xxx.mobileprovision是ios开发中的设备描述文件,里面有证书信息.调试设备的UUID信息.bundle identifier等,此文件是二进制格式不能直接打开,那么如何查看其中信息呢 方法1 使用mac自带security命令行 用mac自带的命令security,cd到mobileprovision所在的文件夹,执行 security cms -D -i