python读写文件,如何将内容添加在文件开头呢

Python010

python读写文件,如何将内容添加在文件开头呢,第1张

fp.seek(offset[,whence])

#将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。

第一种:

1

2

3

4

5

6

7

8

9

10

ft = open("a", 'w')

for entry in result :

print entry

try:

ft.write(entry+'\n')

except:

log.error('write backup error:'+JOBNAME)

ft.close()#在内容写完后再关闭文件

os.chdir(basePath)

第二种:

1

2

3

4

5

6

7

8

9

10

11

for entry in result :

#注意:在每次进入循环后先打开文件

ft = open("a", 'a')#注意:第二个参数,是以追加形式打开,否则还是只有一行

print entry

try:

ft.write(entry+'\n')

except:

log.error('write backup error:'+JOBNAME)

finally:

ft.close()

os.chdir(basePath)

建议使用第一种,因为第二种频繁对文件进行打开和关闭操作,效率较低。

没有办法在开头直接插入内容,必需读一遍文件。

曾经尝试过很多方法,当时也网上到处找方法,终究无果。

所以,最后还是用了最简单暴力的方法,用osd.walk遍历所有python文件,把开头的那些内容写入一个新文件,再读出原文件的内容,写入新文件,然后把新文件重命名为原文件名称。

虽然很暴力,后面发现,其实速度也很快,可能是文件不是太大的缘故。