2015-05-20 34 views
-1

例如文件會是什麼樣子......在Python中,如何在一個以某個詞開頭的行上排除字符串末尾的浮點數?

blah 
blah 
blah 
keyword = 0.0, 8.987, 9.99, 0.0 
blah 
blah 
blah 
keyword = 0.0, 8.987, 9.99, 8.0 
etc. 

我只是想否定過去的值,如果它不爲零。所以,閱讀和編​​輯後,我會拿出...

blah 
blah 
blah 
keyword = 0.0, 8.987, 9.99, 0.0 
blah 
blah 
blah 
keyword = 0.0, 8.987, 9.99, -8.0  
etc. 

我想我可以做,if line.startwith('keyword')找到我需要的線路,但將是發現每一個與它在文件中開始行?

我正在努力的事情是如何檢查,看看最後一個數字是不是零。

我應該將這些浮點數插入數組,並檢查該數組點是否爲零,如果不是否定的?如果是這樣,我該如何跳過keyword =並將這些浮點數放入數組中?

任何想法會有幫助,謝謝!

+0

你嘗試過這麼遠嗎?你可以編輯你的問題發佈你的代碼?由於這是你的第一篇文章,你可能還想閱讀「[問]」。 –

+0

爲什麼你在乎它是否爲零?它仍然是正確的:「0-0」評估爲0。 – TigerhawkT3

回答

1

可以嘗試這樣的事:

my_list = [0.0, 8.987, 9.99, 0.0] 
if my_list[-1]: # will only trigger on non-zero value 
    my_list[-1] = my_list[-1] * (-1) 
print my_list 
0
with open('path/to/input') as infile, open('path/to/output', 'w') as outfile: 
    for line in infile: 
     if not line.startswith('keyword'): 
      outfile.write(line) 
      continue 
     prefix, num = line.rsplit(None, 1) 
     outfile.write(prefix) 
     oufile.write(str(-1*float(num))) 
     outfile.write('\n') 
相關問題