在python中附加文件

时间:2018-02-18 18:37:03

标签: python

我有一份使用固定长度文件的家庭作业:

您将传递文件名P,名字F,姓氏L和新生日B.

在P中加载固定长度记录文件,在第一个中搜索F,L并将生日更改为B.

P= sys.argv[1] 
F= sys.argv[2]
L= sys.argv[3]
B= sys.argv[4]
recordlength = 40
record = [[]]
start = 0
file1 = open(P, 'r')

data = file1.read()
while( (len(data) - start) >= recordlength):
     records= data[start:start + recordlength]
     record.append(records)
     start+= recordlength

for i in range(0,len(record)):
     if F and L in record[i]:
     rec = record[i]


rec = rec[:-8] + B

record[i] = rec
data = "".join(records)
file1 = open(P, 'a+')
file1.write(record[i]) 
file1.close()

我应该得到这个输出:

Adam            Smith           11111985Theodore        Anderson        03201990Monty           Biscuit-Barrel  10181980Adam            Smithers        00000000Ruthy           Anderson        06062010

我得到了这个输出:

Adam            Smith           11111985Theodore        Anderson        03201990Monty           Biscuit-Barrel  10181980Adam            Smithers        10101960Ruthy           Anderson        06062010Adam            Smithers        00000000

而不是替换此行:Adam Smithers 10101960,使用此行:Adam Smithers 00000000,它将此行添加到文件中,保留原始行。 我不确定我的问题在哪里,有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

在第8行,您打开文件,但在第20行再次打开之前不要关闭。尝试在第20行之前关闭或直接在第8行打开参数“a”。