2015-02-17 51 views
-2

我有這樣的元組的列表的文件:如何在文件中找到它?蟒

(1,4)

(230,45),等等

欲讀取的第一線,並採取值(x,y),並在我的程序中讀取它們。

例如: (1,4)#是線1(X,Y)

把他們在功能... #values(X,Y) 運行它們

然後讀取我的文件 的第2行(x,y),將它們放入函數中....#values(x,y) 運行它... 並在文件長度完成時停止。

我的代碼是:

# opens file, reads contents, and splits it by newline 
with open('listprueba.log', 'r') as f: 
    data = f.read().split('\n') 
    for i in range(len(data)): 
     int_list= [int(i) for i in data()] 
     x= (int (i[0])) 
     y=(int (i[1])) 
     print 

和程序的功能是:

log.verbose() 
env = environ() 
class MyLoop(loopmodel): 

# This routine picks the values to be refined 
      def select_loop_atoms(self): 
# insertion of values x, y 
       return selection(self.residue_range(x, y)) 

我能在我的代碼更改,運行它?

+0

可能重複[如何在Python從文件中讀取數字?](http://stackoverflow.com/questions/6583573/how-to-read-numbers-from-file-in-python) – aruisdante 2015-02-17 21:08:31

回答

0

退房的AST模塊:https://docs.python.org/2/library/ast.html

literal_eval功能將創建一個從每一行的元組。該文件中的行應該是(1, 2)然後,您可以遍歷元組,並執行您需要做的x和y操作。

import ast 

with open('temp.txt', 'r') as f: 
    lst = [ast.literal_eval(line) for line in f.readlines()] 

for t in lst: 
    x, y = t 
    # do what you need to do 
+0

但是,該文件具有元組列表(1,4)是第1行,(230,45)是第2行等。我讀取第1行的值(x,y),然後使用它在我的程序函數中...當程序結束時,返回第2行,取值(230,45)並再次運行該函數...並在我的文件長度結束時停止。我能做些什麼,你可以給我一些spoor plis = – Hdez 2015-02-18 15:46:36

+0

在標有#的地方做你需要做的事情,只需調用你的函數(x,y)即可。你嘗試過嗎? – 2015-02-18 16:14:00

+0

是的,我試着用x = lst [0],只是打印第一行,現在我正在搜索如何返回到第2行。謝謝 – Hdez 2015-02-18 16:24:47