Python 为什么file.read()不';t读第一行?
我不知道为什么,但当我尝试使用file.read()读取文件时,Python无法识别文件的第一行。。这是翻译错误,还是我的错 您在此处有一份程序副本(显示读取结果): 这是导致问题的代码:Python 为什么file.read()不';t读第一行?,python,file-io,python-2.5,Python,File Io,Python 2.5,我不知道为什么,但当我尝试使用file.read()读取文件时,Python无法识别文件的第一行。。这是翻译错误,还是我的错 您在此处有一份程序副本(显示读取结果): 这是导致问题的代码: if wfile.readline() != "#! /usr/bin/env python\n": before = wfile.read() wfile.seek(0) wfile.write('#! /usr/bin/env python\n' + before) wfi
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)
我用于测试的Python版本是用于iOS的Python 2.5.1(Cydia端口)。我的设备是iPad 2。您正在使用
if
-语句中的readline()
函数读取文件的第一行。当您到达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)
这样,您就可以在变量之前保存原始的第一行,以备以后使用
注意:使用和将在完成后自动关闭文件,或者遇到异常。您正在使用if
-语句中的readline()
函数读取文件的第一行。当您到达read()
时,第一行已经被读取
import os
file_name = 'foo.py'
shebang = '#!/usr/bin/env python'
with open(file_name, 'r') as f:
lines = f.read().splitlines()
if shebang not in lines[0]:
lines.insert(0, shebang)
with open(file_name, 'r+') as f:
f.write('\n'.join(lines))
os.chmod(file_name, 777)
后续的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)
这样,您就可以在变量之前保存原始的第一行,以备以后使用
注意:将与
一起使用将在完成后自动关闭文件,或者遇到异常
import os
file_name = 'foo.py'
shebang = '#!/usr/bin/env python'
with open(file_name, 'r') as f:
lines = f.read().splitlines()
if shebang not in lines[0]:
lines.insert(0, shebang)
with open(file_name, 'r+') as f:
f.write('\n'.join(lines))
os.chmod(file_name, 777)