簡體   English   中英

使用python從.txt文件中檢索數據?

[英]retrieving data from a .txt file using python?

在下面的內容中,您可以查看ephemeris.txt文件中的數據。 現在,我想檢索幾列(例如,以00:00、27.69和44.1開頭的列)並將數組命名為x,y,z。 我需要做什么?

我試過了

x, y, z = numpy.loadtxt("ephemeris.txt", unpack=True)

這得到這個錯誤

"ValueError: could not convert string to float: Date__(UT)__HR:MN"

您還能幫我將HR:MN轉換為分鍾嗎?

Date__(UT)__HR:MN     R.A.__(a-apparent)__DEC\
**********************************************\
 2013-Jan-01 00:00 *   14 31 27.69 -12 29 44.1\
 2013-Jan-01 00:01 *   14 31 27.71 -12 29 44.1\
 2013-Jan-01 00:02 *   14 31 27.72 -12 29 44.2\
 2013-Jan-01 00:03 *   14 31 27.73 -12 29 44.2\
 2013-Jan-01 00:04 *   14 31 27.75 -12 29 44.3\
 2013-Jan-01 00:05 *   14 31 27.76 -12 29 44.3\
 2013-Jan-01 00:06 *   14 31 27.77 -12 29 44.4\
 2013-Jan-01 00:07 *   14 31 27.78 -12 29 44.4\
 2013-Jan-01 00:08 *   14 31 27.80 -12 29 44.4\
 2013-Jan-01 00:09 *   14 31 27.81 -12 29 44.5\

提前致謝

您可以使用loadtxt函數的更多參數。

您最有可能遇到的錯誤是由於前兩個標題行,因此請使用skiprows=2參數跳過它們;

此外,每一行都包含以不同格式(由空格分隔)的數據。 以防萬一,請使用delimiter=' ' ,您可以在dtype=stringdtype=object之間進行選擇。

a = numpy.loadtxt("ephemeris.txt", delimiter=' ', dtype=string, skiprows=2)

這應該為您提供一個數組,從中可以執行多種“轉換”:每列拆分一個數組,創建行列表等。

x,y,z,etc = numpy.hsplit(a, a.shape[1])
x = x.astype(datetime)

# or
x = a[:,0].astype(datetime)
y = a[:,1].astype(some_type)

或類似的東西...

希望對您有所幫助,請根據需要在評論中進行詳細說明。

import re
f = open("ephemeris.txt")
for line in f.readlines():
    r = re.search("(\d{4})\-(\w{3})-(\d{2}) (\d{2}):(\d{2}) \*   (.*?)\\\n", line)
    if r:
        print "Year: "+r.group(1)
        print "Month: "+r.group(2)
        print "Day: "+r.group(3)
        print "Hour: "+r.group(4)
        print "Minute: "+r.group(5)
        print "Data: "+r.group(6)

這將讀取文件的每一行,檢查它是否與模式匹配,如果匹配,則打印它可以檢索的所有數據。

您還可以分割每行,設置一個字符分隔符。 然后,您可以使用索引訪問每個(字符串)令牌:

def prova():
    f = open('/home/frenk/Desktop/ephemeris.txt')
    l = []
    for line in f:
        l = line.split(" ")
        print "date: " + l[1]

其次,如果要將字符串“ 31”轉換為整數31,則可以簡單地編寫:

x = int('31')

請注意,您可以使用切片符號選擇字符串的切片:

string = "This is a slice of string"
print string[10:15]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM