时间:2021-07-01 10:21:17 帮助过:69人阅读
open() returns a file object, and is most commonly used with two arguments: open(filename, mode).
>>>写文件有两种模式:一种叫truncate(截断),一种叫append(追加)。前者每次打开文件都会把文件已有的内容删除,再写入内容;后者每次打开文件不会删除已有内容,而是在已有内容之后在写入内容。剩下的题主自己想想?>>> f = open('workfile', 'w') >>> print f
========================================================================
学东西,还是好好先找几本书,把基础打好才对。 看文档。 先给出题主提出的新问题的答案,清空内容不是在File Objects 调用write时发生的,而是在用“w”模式open文件时发生的
题主其实在两个地方存在疑惑,"w"模式的特性 , 以及file.close的作用
分开说明。
关于file.close,Python文档里说的很清楚了,看这里:file.write,我引用一下Due to buffering, the string may not actually show up in the file until the flush() or close() method is called.至于w模式的问题,Python文档并没有把这件事说清,也可能是我没看到:),我在stackoverflow上看到过极好的说明:python open built-in function: difference between modes a, a+, w, w+, and r+?
从中我们可以看到“w”模式的问题其实和Python关系不大,要理解它的特性,需要追溯到C标准库中的fopen()函数,定义如下"w'' Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file.我从没见过你这么干的。
我不明白你是怎么把 “打开→读/写→关闭”这个过程理解成这样子的。我理解中多次打开同一文件是不应出现的行为。open的各个参数功能应该会有相应的讲解,简单说题中所讲:def writeFile() : file = open('test.txt','w+') file.write('testtesttest') file.write('\n') file.write('new line') file.close()
'w'打开并清空文件,如果是没有文件则重新创建。
如果需要你多次操作能够写入,需要用‘a'的参数。如果你把你第二段代码的'w'改成'a'的话其实你也会发现没有得到预期的效果。原因何在呢?其实,文件的写入位置很巧妙,有点类似于C语言种的指针操作。而每次重新打开之后,指针又重新归零。如果是你写入的第一个字符串很长的话,你就会发现还是保留了一部分信息的。
简单写一下例子如下:
如上面的代码,每次打开之后全都清空文件。最后,第6行代码把文件清空。
结果如下:
如果换成'a',那么每次重新打开的话,写入从文件开头写入。
代码以及结果如下(需要注意的是,后面我故意写的那一串字母tttttt,由于每次写入的位置是开始,但是写入的长度不够,因此后面的tttt等字符没有被覆盖掉):
再看一个例子,把追加参数改成'a+'(这样,写入的“指针就一直保留在上次的位置”):
基础太重要了,只open不close就是在耍流氓。建议去学学C/C++,看看异地中午文件句柄只open不close是什么情况。 答案就像你说的那样,每次用open('test.txt','w')打开文件时,都会把前面的清空。如果不清楚这个过程中到底发生了什么,可以在每个write下面加上print打印出来open('test.txt','w').write('jdhfjkf') print open('test.txt','r').readlines() open('test.txt','w').write('\n') print open('test.txt','r').readlines() open('test.txt','w').write('zbvbvxsg') print open('test.txt','r').readlines() open('test.txt','w').close()
人气教程排行
- 384次 1 对Python2.7pandas中的read_excel详解
- 383次 2 Python实现定时弹窗提醒
- 383次 3 python爬虫入门(3)--利用requests构建知乎API
- 382次 4 python如何爬取搜狗微信公众号文章永久链接的思路解析
- 381次 5 python字典的键可以相同吗
- 381次 6 python是一种面向什么的语言?
- 381次 7 python通过pil为png图片填充上背景颜色的方法
- 380次 8 python语言的编程模式有什么
- 380次 9 使用python获取进程pid号的方法
- 380次 10 Python中如何解决无限循环的问题
- 378次 11 怎么解决pip不是内部或外部命令
- 378次 12 python中def是什么意思
- 376次 13 对numpy中数组元素的统一赋值实例
- 374次 14 python的选择语句是什么语句
- 374次 15 Python中构造方法的解析(附示例)
- 373次 16 关于python中引入导入与自定义模块以及外部文件的实例分享
- 372次 17 python如何在不同类之间调用方法
- 372次 18 python中的【//】是什么运算符号
- 371次 19 python中╲t是什么
- 371次 20 python同时给多个变量赋值