2016-06-12 45 views
-1

我是新的python。我有一个很大的文本文件,它有很多数字,看起来像这样。数字之间有8个空格。在python中搜索与文本文件相关的数字和访问信息?

100  200  300  400  500  .. 
101  201  301  401  501  .. 
102  202  302  402  502  .. 
..   ..   ..   ..   ..   .. 

我想要搜索从第一列中的数字(例如,100或101或102),只说我希望搜索101,然后我想在它前面像201使用号码, 301,401等在我的代码的不同地方。如何搜索我的需求的特定数字并单独访问它们前面的数字,因为它们不会一起使用,它们都将在不同的地方单独使用?谢谢。

+0

这并没有真正回答我的问题。请给[mcve]。 – jonrsharpe

+0

与天体物理学有关,我必须做一些计算,有行星候选人名称为“2714”,并有与他们有关的参数。考虑一下,这个列表中的101是我的星球,201,301,401是这个星球的参数。我希望它在这个文件中打开这个文本文件搜索行星(我将使用raw_input输入行星名称),并给我索引或其他内容(如列表中的内容)。这样我可以转到同一个索引的其他列并选择参数进行计算。我[1:2,1]会给我“201”。但是,我将如何获得星球的指数来填补? – Salil

+0

对不起,我不小心发布了没有回答你的问题的第一条评论。 – Salil

回答

0

您可以打开文本文件和读取它,然后存储这些数字在列表中,这样的:

handle = open(name, 'r') 
text = handle.read() 
numbers = text.split() 

要查找某个数值,使用循环通过列表来运行,并找到你想要的号码的位置。 之后,如果您的文本文件遵循某种模式,则可以通过向索引添加固定值来访问第一个数字前面的其他数字,以便查找列表中的其他位置。

举例来说,如果你有这样的文字:

3 13 

2 12 
1 11 

其名单将上面的代码时,会是这样:

['3','13','2','12','1','11'] 

所以,你可以对其中一个明确的想法其他期望的值将是。

+0

对不起,但数字没有图案,没有任何图案,这只是为了说明。该文本文件很大,大约有15-20列参数,看起来像“527727.87092646223”,并且有大约数百行。我对使用文本文件很陌生。所以把它们改成列表可能不是最好的方法,我不知道只是假设。 – Salil

+0

由于您拥有固定数量的列和具有固定行数的已知数据,因此您有一个模式。如果第一列代表名称,而其余列则是参数:你总是知道在哪里可以找到任何名字的第六个参数。它将位于列表中,索引等于:名称索引+ 6.逻辑适用于所有数据。 –

+0

该文件有评论,所以当我使用这种方法时,它也包含评论。评论的篇幅各不相同,所以我无法真正把所有的字都算在内,我不认为它可以处理不同的文件。我打开它们的方法是file =“/ home/sdha/.......”\ n x = np.genfromtxt(file)\ n。到目前为止,我正在绘制完整列vs柱的图,所以我在第一列中使用了x [:,0],在第二列中使用了x [:,1],这样注释就没有问题,它们会被自动忽略。谢谢。 – Salil