2012-12-27 117 views
4

只是想知道什么是应该做这个..我有以下内容的文件最简单的方法:蟒蛇:数列

01 04 
02 04 
04 04 

我打算修改我的文件追加“失踪的文件,自04意味着有4项,但是3号丢失:

01 04 
02 04 
#missing 
04 04 

什么是最简单的方式,我敢肯定这是一个简单的修复,只是我是新来的蟒蛇,我继续努力?非常啰嗦的实施这个方法。

希望能从这里听到一些东西,谢谢大家!

+3

http://whathaveyoutried.com? – Fabian

回答

4
with open('path') as f: 
    for i, line in enumerate(f, start=1): 
     if int(line.split()[0]) == i: 
      pass 
     else: 
      #put missing 

我没试过这段代码。这只是概念。

+0

Thanks Dmitry :)当我尝试使用时出现以下错误:Warning:'with'将成为Python 2.6中的保留关键字 ,其中打开的(temp_file_path)为f: ^ SyntaxError:无效的语法 – user1931765

0

使用另一个文件,然后用它替换你的文件。

text = file('file_name','r').read() // read from file 
list = '00 00' + [line for line in text] 
new_list = [] 
l=len(list) 
for i in xrange(1,l): 
    new_list+=['missing' for i in range(int(list[i].split()[0])-int(list[i-1].split()[0])+1)] 
    new_list.append(list[i]) 

然后写new_list到文件,然后用这一个

0

替换文件试试这个:

f = open('file.txt', 'r') 
newfile = [] 
lines = f.readlines() 
number = lines[0][-3:-1] 
for i in range(int(number)): 
    string = '0' + str(i+1) + ' ' + number 
    if i + 1 != int(number): 
     string += '\n' 
    if string not in lines: 
     newfile.append('missing\n') 
    else: 
     newfile.append(string) 
f.close() 
f = open('file.txt', 'w') 
f.writelines(newfile) 
f.close() 

它工作时,我与你的榜样尝试。它检查字符串是否在文件中,如果不是,则写入'missing'

注意:不完全确定是否有读写模式(截断)

+0

不一定是最短的方式,但它工作正常。 – Volatility