【发布时间】:2016-01-21 00:58:26
【问题描述】:
我已经查看了很多关于此的主题,但找不到正确的答案:
我对 python 有点陌生。我在python中打开一个文件,在开始行之前插入一行,在最后一行之前插入一行,然后在最后将所有行重构为一个字符串变量。
这是我试图在打开的文件上运行的功能。这会将 mode="0" 的所有行更改为 mode="1",反之亦然。
def Modes(file, mode):
endstring = ''
if(mode == 1):
mode0 = 'mode="0"'
mode1 = 'mode="1"'
else:
mode0 = 'mode="1"'
mode1 = 'mode="0"'
for line in iter(file):
if 'Modes' in line:
line = line.replace(mode0,mode1)
endstring += line
return endstring
所以我尝试以下方法:
mode = 1
input_file = open("c:\myfile.txt")
input_file.readlines()
lengthlines = len(input_file)
#insert line at position 1
input_file.insert(1,'<VARIABLE name="init1" />')
#insert line at last line position - 1
input_file.insert(lengthlines,'<VARIABLE name="init2" />')
#join the lines back up again
input_file = "".join(input_file)
#run the modes function - to replace all occurrences of mode=x
finalfile = Modes(input_file,mode)
print finalfile
然后我收到错误,“文件类型的对象,没有“len()””和一般对象/列表错误。
我似乎把对象/列表等弄混了,但我不确定在哪里 - 将不胜感激任何帮助 - 干杯
【问题讨论】:
-
input_file.readlines()本身并没有做任何事情 -
我弄错了,我已经更新了:/ 抱歉