Xer*_*erz 0 python file-io python-2.5
我不知道为什么,但是当我尝试用file.read()读取文件时,Python无法识别文件的第一行..这是一个解释器错误,或者这是我的错?
你有一份程序副本(显示阅读结果):http://pastebin.ubuntu.com/1032832/
这是导致问题的代码:
if wfile.readline() != "#! /usr/bin/env python\n":
before = wfile.read()
wfile.seek(0)
wfile.write('#! /usr/bin/env python\n' + before)
wfile.close()
os.chmod(file, 777)
Run Code Online (Sandbox Code Playgroud)
我用于测试的Python版本是用于iOS的Python 2.5.1(Cydia端口).我的设备是iPad 2.
您正在使用-statement中的readline()函数读取文件的第一行if.当你到达时read(),第一行已被阅读.
随后write()将写出wfile.read() 已阅读的内容.
看起来您要检查文件的第一行是否包含相应的#!/usr/bin/...行.如果没有,您希望将其插入当前第一行之前,然后在其下面写下原始第一行.这样做:
with open(file, 'r+') as wfile:
before = wfile.readline()
if before != "#! /usr/bin/env python\n":
wfile.seek(0)
wfile.write('#! /usr/bin/env python\n' + before)
Run Code Online (Sandbox Code Playgroud)
这样,您可以将原始第一行保存在变量中before以供以后使用.
注意:完成后,usingwith 会自动为您关闭文件,或者遇到异常.