我在此python程序中遇到了一个错误“ IOError:[Errno 0] Error”:
from sys import argv
file = open("test.txt", "a+")
print file.tell() # not at the EOF place, why?
print file.read() # 1
file.write("Some stuff will be written to this file.") # 2
# there r some errs when both 1 & 2
print file.tell()
file.close()
似乎是什么问题?以下两种情况都可以:
from sys import argv
file = open("test.txt", "a+")
print file.tell() # not at the EOF place, why?
# print file.read() # 1
file.write("Some stuff will be written to this file.") # 2
# there r some errs when both 1 & 2
print file.tell()
file.close()
和:
from sys import argv
file = open("test.txt", "a+")
print file.tell() # not at the EOF place, why?
print file.read() # 1
# file.write("Some stuff will be written to this file.") # 2
# there r some errs when both 1 & 2
print file.tell()
file.close()
还是,为什么
print file.tell() # not at the EOF place, why?
不打印文件的大小,是“ a +”附加模式吗?那么文件指针应该指向EOF?
我正在使用Windows 7和Python 2.7。
Python使用stdio的fopen函数并将模式作为参数传递。我假设您使用Windows,因为@Lev说代码在Linux上工作正常。
以下是来自Windows的fopen文档,这可能是解决您的问题的线索:
当指定“ r +”,“ w +”或“ a
+”访问类型时,允许读取和写入(据说该文件已打开以进行“更新”)。但是,当您在读写之间切换时,必须有一个中间的fflush,fsetpos,fseek或rewind操作。如果需要,可以为fsetpos或fseek操作指定当前位置。
因此,解决方案是file.seek()
在file.write()
调用之前添加。要附加到文件末尾,请使用file.seek(0, 2)
。
供参考,file.seek的工作方式如下:
要更改文件对象的位置,请使用f.seek(offset,from_what)。通过将偏移量添加到参考点来计算位置;参考点由from_what参数选择。from_what值0从文件开头开始测量,1使用当前文件位置,而2使用文件结尾作为参考点。from_what可以省略,默认为0,使用文件的开头作为参考点。
参考:[http](http://docs.python.org/tutorial/inputoutput.html):[//docs.python.org/tutorial/inputoutput.html]
正如@lvc在评论中提到和@Burkhan在他的回答中提到的那样,您可以使用io模块中较新的open函数。但是,我想指出的是,在这种情况下,write函数的工作原理并不完全相同-
您需要提供unicode字符串作为输入[在这种情况下,只需在字符串前面u
加上a ]:
from io import open
fil = open('text.txt', 'a+')
fil.write('abc') # This fails
fil.write(u'abc') # This works
最后,请避免将文件名“ file”用作变量名,因为它指的是内置类型,并且会被静默覆盖,从而导致一些难以发现的错误。
文件操作主要讲解以下内容: 1.文件本身的操作(python内置) 2.系统中文件和文件夹的操作(os和shutil模块当中) 3.系统路径相关操作(os模块中的子模块 os.path) 文件的基本操作: open() 打开或者创建一个文件 格式:open('文件路径','打开模式') 返回值:文件io对象 打开模式一共N种: w模式 写模式write
本文向大家介绍python实现操作文件(文件夹),包括了python实现操作文件(文件夹)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了pyhton操作文件的具体代码,供大家参考,具体内容如下 copy_file 功能:将某个文件夹下的所有文件(文件夹)复制到另一个文件夹 zip_file 功能:将某个文件夹下面的所有文件(文件夹)压缩 del_file 功能:将某个文件夹下面的所
Python 中,对文件的操作有很多种,常见的操作包括创建、删除、修改权限、读取、写入等,这些操作可大致分为以下 2 类: 删除、修改权限:作用于文件本身,属于系统级操作。 写入、读取:是文件最常用的操作,作用于文件的内容,属于应用级操作。 其中,对文件的系统级操作功能单一,比较容易实现,可以借助 Python 中的专用模块(os、sys 等),并调用模块中的指定函数来实现。例如,假设如下代码文件
本文向大家介绍Python操作Excel之xlsx文件,包括了Python操作Excel之xlsx文件的使用技巧和注意事项,需要的朋友参考一下 前言 之前处理excel的读写时用的是xlrd/xlwt,但是这两个库有个缺点就是只对xls的格式处理的比较好,对以xlsx结尾的格式就不行了。由于现在大家使用的都是最新版本的office,excel的格式都是xlsx,因此此时再继续用xlrd/xlwt处
本文向大家介绍浅析使用Python操作文件,包括了浅析使用Python操作文件的使用技巧和注意事项,需要的朋友参考一下 1. file=open('xxx.txt', encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件本身,所以使用的方法都是流对象的方法)。使用这个函数时推荐指定encoding参数(Python2.7.x
本文向大家介绍python文件操作整理汇总,包括了python文件操作整理汇总的使用技巧和注意事项,需要的朋友参考一下 总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录