Tab分隔转逗号分隔转麻烦

Tab delimeter to comma delimeter transfer trouble

我有一个关于使用 Python 在 for 循环中从文本文件打印数据的问题。每当我尝试 运行 这个程序时,它说 "could not convert string to float: KAAA" (KAAA 是元素 [2] 中的字符串元素)。我正在尝试将数据从带有制表符分隔符的文本文件传输到带有逗号分隔符的文本文件。出于某种原因,如果我去掉第三列字符串,这个程序就可以正常工作,但是当我把它重新添加进去时就不行了。有没有办法让所有三列都传输到一个文本文件中,用逗号分隔他们?这是数据中的示例行。 “40.15869904 -89.33499908 KAAA。”

cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor)
opener.addheaders = [('User-agent','mr_anderson')]


keywords = map(''.join, product(ascii_lowercase, repeat=3))
keywords = ["k"+a+b+c for a,b,c in product(ascii_lowercase, repeat=3)]

start_time = time.time()

print("--- %s seconds ---" % (time.time() - start_time))

try:
    a = 1
    b = 1
    List=[""]
    data = np.loadtxt("airportcodelatlonidentonlyk.txt")
    text_file_latlonair = open("latlontext.txt","a")
    for element in data:
        lat = str(element[0])
        lon = str(element[1])
        ident = str(element[2])
        text_file_latlonair.write(str(lat)+','+str(lon)+','+str(ident))
    text_file = open("nws_contourcurrenttemp_datatwo.txt","a")
    for i in range (1,50):
        i=1
        i+=1
        a+=1
        b+=1
        keywargs = str(keywords[a]).upper()
        argument = 'http://w1.weather.gov/xml/current_obs/'+keywargs+'.rss'
        page = 'http://w1.weather.gov/xml/current_obs/KBED.rss'
        sourceCode = opener.open(page).read()
        #print(sourceCode)
        req = Request(argument)


        try:
            page_open = urlopen(req)
        except:
            None

        else:

            c=1
            c+=1
            sourceCode = opener.open(argument).read()
            KBEDforecastraw = re.findall(r'and\s\d{1,2}\s\w.*?',str(sourceCode))
            windraw = re.findall(r'at\s\d{1,2}\.\d{0,1}.*?',str(sourceCode))
            pressureraw = re.findall(r'The pressure is\s\d{1,4}\.\d{0,1}\s\w\w.*?',str(sourceCode))
            humidraw = re.findall(r'the humidity is\s\d{1,2}\%.*?',str(sourceCode))

            try:
                KBEDtemp = KBEDforecastraw[0]
                KBED = str(KBEDtemp).strip("[and F]")
                #text_file.write(KBEDtemp)

            except:
                None
            else:
                text_file.write(KBED+'\n')
                #print(KBED)
                #print(str(KBEDforecastraw)+' '+keywargs+str(windraw)+str(pressureraw)+str(humidraw))








except Exception, e:
    print(str(e))



print("--- %s seconds ---" % (time.time() - start_time))

从您的 np 变量猜测您正在使用 numpy,它假定传递到 load 的数据是浮点类型。看起来您的代码假定所有内容都是字符串,因此只需传入 str 数据类型即可。

http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html