我在python中编写一个类来修改文本文件中的一行。测试代码在单独运行时运行良好。
class fileeditor:
def __init__ (self,a,b):
self.a = a
self.b = b
self.c = 0
print 0
def editinputfile (self):
return 0
with open (self.a,"r") as my_file:
for line in my_file:
if line.strip():
self.c+=1
self.c=self.c-2
with open (self.a,"r") as my_file:
lines=my_file.readlines()
lines[self.c]= self.b
with open (self.a,"w") as my_file:
my_file.write(''.join(lines))
my_file.close()
但是当我试图从另一个文件中调用它时,它不起作用。 self.a
是文本文件的地址,而self.b
是将覆盖文本文件中一行的字符串。
from editor import fileeditor
a=".\test.txt"
b='1 2 4 5\n'
fileeditor(a, b)
答案 0 :(得分:4)
通过您给出的示例,您似乎只是在创建新实例而不是调用editinputfile
方法。尝试做:
fe = fileeditor(a, b)
fe.editinputfile()
答案 1 :(得分:1)
首先,您应该删除return 0
中的editinputfile
。然后你也应该调用这个函数。
from editor import fileeditor
a=".\test.txt"
b='1 2 4 5\n'
myfe = fileeditor(a, b)
myfe.editinputfile()