从另一个文件写入文件并从文件中删除行

时间:2014-03-10 06:17:59

标签: python file

我的文件(outputfile6.txt)是:

1രാമന്‍ 2സീതയെ 3കണ്ടു 4.
5അവന്‍ 6അവള്‍ക്ക് 7പൂവ്‌ 8കൊടുത്തു 9.
10അവള്‍ 11അത്‌ 12വാങ്ങി 13.
14അവര്‍ 15ഒരുമിച്ച്‌ 16കോട്ടയത്ത്‌ 17പോയി 18.
19അവിടെ 20വെച്ച്‌ 21അവര്‍ക്ക്‌ 22പരീക്ഷ 23ഉണ്ട് 24ആയിരുന്നു 25. 
26അവിടെ 27വെച്ച്‌ 28രാമന്‍ 29ലക്ഷ്മനനെ 30കണ്ടു 31.
32അവന്‍ 33രാമനോടു 34സംസാരിച്ചു 35.
36ലക്ഷ്മണന്‍ 37സീതയെ 38കണ്ടു 39.
40അവനെ 41അവള്‍ക്ക്‌ 42ഇഷ്ടമായി 43.
44ഈ 45വഴ 46ആണ് 47അവര്‍ 48പണ്ട് 49നടന്നത്‌ 50.

是否可以根据行号将这些行写入另一个文件?
例如:  从行号:1到5打印。之后我想删除写入另一个文件的那些行。这应该持续到EOF 由于上述概念是我的代码的一部分,我无法透露我的整个代码 为了我的工作。首先,我找到了我的开头句。然后找到了我想要的最后一句话。

fp = codecs.open('outputfile6.txt', encoding='utf-8')
lines1 = fp.readlines()
fp.close()
fb = codecs.open('outputfile7.txt', 'w')
write=0
for l in lines1:
    if i in l:#i is my search item which contains in the starting sentence.
        write=1
    if write==1:
        fb.write(l.encode('UTF-8'))
    if line_upto in l:#line_upto is a string which contains in the lastsentence
        write=0
        break
fb.close()#Here i didn't get a code for deleting lines from the file.

我的输出是:
我总是得到outputfile7.txt和outputfile6.txt相同 我期望的outputfile7.txt是:

1രാമന്‍ 2സീതയെ 3കണ്ടു 4.  
5അവന്‍ 6അവള്‍ക്ക് 7പൂവ്‌ 8കൊടുത്തു 9.  
10അവള്‍ 11അത്‌ 12വാങ്ങി 13.  
14അവര്‍ 15ഒരുമിച്ച്‌ 16കോട്ടയത്ത്‌ 17പോയി 18.    
19അവിടെ 20വെച്ച്‌ 21അവര്‍ക്ക്‌ 22പരീക്ഷ 23ഉണ്ട് 24ആയിരുന്നു 25.   

1 个答案:

答案 0 :(得分:0)

我收到了删除行的代码:

这里是我要从文件中删除的行号。

fp = codecs.open('outputfile6.txt', encoding='utf-8')
lines1 = fp.readlines()
fp.close()
fb = codecs.open('outputfile6.txt', 'w')
for j in range(0,len(lines1)):
    if j>end:
        fb.write(lines1[j].encode('UTF-8'))

fb.close()

如果将此代码正确附加到上面的代码,将获得预期的输出。