高端网站建设制作,可以做国外购物的网站,wordpress知更鸟主题怎么用,网站编程多少钱第一步 排除文件打开方式错误#xff1a;r只读#xff0c;r读写#xff0c;不创建w新建只写#xff0c;w新建读写#xff0c;二者都会将文件内容清零#xff08;以w方式打开#xff0c;不能读出。w可读写#xff09;**w与r区别#xff1a;r#xff1a;可读可写#…第一步 排除文件打开方式错误r只读r读写不创建w新建只写w新建读写二者都会将文件内容清零以w方式打开不能读出。w可读写**w与r区别r可读可写若文件不存在报错w: 可读可写若文件不存在创建r与a区别[python] view plain copyfd open(1.txt,w) fd.write(123) fd open(1.txt,r) fd.write(456) fd open(1.txt,a) fd.write(789) 结果456789说明r进行了覆盖写。以a,a的方式打开文件附加方式打开a附加写方式打开不可读a: 附加读写方式打开以 U 标志打开文件, 所有的行分割符通过 Python 的输入方法(例#如 read*() )返回时都会被替换为换行符\n. (rU 模式也支持 rb 选项) . r和U要求文件必须存在不可读的打开方式w和a若不存在会创建新文件的打开方式aaww[python] view plain copy fdopen(rf:\mypython\test.py,w) #只读方式打开读取报错 fd.read() Traceback (most recent call last): File stdin, line 1, in module IOError: File not open for reading fdopen(rf:\mypython\test.py,a)#附加写方式打开读取报错 fd.read() Traceback (most recent call last): File stdin, line 1, in module IOError: File not open for reading /span/span/span 2.正确读写方式打开出现乱码[python] view plain copy fdopen(rf:\mypython\test.py,a) fd.write(123) fd.read() fd.close() close之前手动打开文件什么都没写入close后手动打开文件乱码123嚅? 原因分析指针问题。open()以a模式开启了一个附加读写模式的文件由于是a所以指针在文件末尾。此时如果做read()则Python发现指针位置就是EOF读取到空字符串。在写入123之后指针的位置是4仍然是文件尾文件在内存中是123[EOF]。但看起来read()的时候Python仍然去试图在磁盘的文件上将指针从文件头向后跳3再去读取到EOF为止。也就是说你实际上是跳过了该文件真正的EOF为硬盘底层的数据做了一个dump一直dump到了一个从前存盘文件的[EOF]为止。所以最后得到了一些根本不期待的随机乱字符而不是编码问题造成的乱码。解决方案读取之前将指针重置为文件头如果读取之后重置再读无效[python] view plain copy fdopen(rf:\mypython\test.py,a) fd.seek(0) fd.read() 123span stylewhite-space:pre /span#顺利读出/span/span3.文件里有内容却读出空字符[python] view plain copy fdopen(rf:\mypython\test.py,w) #清空内容重新写入 fd.write(456) fd.flush()span stylewhite-space:pre /span#确定写入此时文件内容为“456” fd.read() #读出空原因同样是指针问题写入后指针指向末尾[EOF]因此读出空解决方案一、调用close后重新打开指针位于开头。(r,r,a,U都可以注意不要用wwa打开)[python] view plain copy fd.close() fdopen(rf:\mypython\test.py,a) fd.read() 456 fd.close() fdopen(rf:\mypython\test.py,r) fd.read() 456pre namecode classpython fd.close() fdopen(rf:\mypython\test.py,r) fd.read() 456 fd.close() fdopen(rf:\mypython\test.py,U) fd.read() 456解决方案二、调用seek指向开头[python] view plain copy fdopen(rf:\mypython\test.py,w) fd.write(456) fd.seek(0) fd.read() 456seek函数 seek(offset[, whence]) offset是相对于某个位置的偏移量。位置由whence决定默认whence0从开头起whence1从当前位置算起whence2相对于文件末尾移动通常offset取负值。来源http://blog.csdn.net/ztf312/article/details/47259805转载于:https://www.cnblogs.com/easonbolg/articles/7875739.html