如何在文件顶部添加新的文本行?

2024-09-28 20:46:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个使Python脚本可执行的简单程序,我正在添加解释器路径(#)!/usr/bin/python)。我试过这样做,但没有添加新行,而是替换了当前的并删除了下一行的一部分。我做错什么了?

我把源代码上传到Ubuntu Pastebin:http://pastebin.ubuntu.com/1032683/错误的代码在第28行和第31行之间:

wfile = open(file, 'r+')
if wfile.readline() != "#! /usr/bin/python\n":
    wfile.seek(0)
    wfile.write("#! /usr/bin/python\n")

将Python 2.7.2与ipad2(Python for iOS)一起使用,同时在同一个iPad(Cydia端口)中使用2.5.1进行测试。


Tags: 路径程序脚本comhttpbin源代码ubuntu
3条回答

乔是对的,因为你不能只在文件的开头“插入”行。不过,这里有一个解决方案:

with open(my_python_script, "r+") as f:
    first_line = f.readline()
    if first_line != "#! /usr/bin/python\n":
        lines = f.readlines()
        f.seek(0)
        f.write("#! /usr/bin/python\n")
        f.write(first_line)
        f.writelines(lines)         

要在命令行中添加/替换每个文件中的第一行:

#!/usr/bin/env python
import fileinput

shebang = "#! /usr/bin/python\n"
for line in fileinput.input(inplace=1):
    if fileinput.isfirstline() and line != shebang:
       print shebang,
       if not line.startswith("#!"): 
          print line,
    else:
       print line,

你不能做你想做的事。查找文件的开头并执行写操作将从该位置覆盖,而不是追加。

在文件中间(或开头)添加行的唯一方法是写出一个新文件,并将数据插入到所需的位置。

相关问题 更多 >