2017-06-22 4 views
0

Nach einer langen Berechnung habe ich Dateien, die folgende Strings enthalten.ValueError: Konnte String nicht in Fließkomma konvertieren: "nbformat": 4

(Jede Saite ist mit „\ t“ getrennt und hat „\ n“ am Ende der jeder Zeile.)

0.0000008375000 829.685601736 555.939928236 
0.0000008376000 829.511081539 555.889353246 
0.0000008377000 829.336613968 555.838785601 
0.0000008378000 829.162199002 555.7882253 
0.0000008379000 828.987836621 555.737672342 
0.0000008380000 828.813526805 555.687126727 
0.0000008381000 828.639269533 555.636588453 

dann diese Dateien plotten ich versuchte. (Der Dateiname beginnt mit P.)

fList = np.array(gl.glob("P*")) 
for i in fList: 
    f = open(i, "r") 
    data = f.read() 
    data = data.replace("\n", "\t") 
    data = np.array(data.split("\t"))[:-1].reshape(-1,3) 
    plt.plot(data[:,0], data[:,1], label=i) 

Dann endete ich mit folgendem Fehler.

(Error Zeiger zeigt dies an der Linie plt.plot (Daten geschehen [: 0], data [: 1], label = i))

ValueError: could not convert string to float: "nbformat": 4, 

Ich habe andere Tutorials oder Komplettlösungen nachgeschlagen, aber leider konnte ich nicht verstehen, wie ich dieses Problem beheben konnte. Jede Hilfe oder Beratung wäre sehr dankbar.

Antwort

1

Sie können direkt verwenden numpy in der Datei in drei Reihen zu lesen:

import numpy as np 
import matplotlib.pyplot as plt 
from glob import glob 

fList = glob("P*") 
for i in fList: 
    x,y,z = np.loadtxt(i, unpack=True) 
    plt.plot(x,y, label=i) 

plt.legend() 
plt.show() 
+1

Oder in einem einzigen Array was das betrifft 'data = np.loadtxt (i)' – jadsq

+0

Danke ImportanceOfBeingEmest und jadsq! Ich fand das Problem war der Dateiname selbst :(. Codes funktionieren nur gut. Ich habe Dateinamen geändert, um eindeutige Namen eindeutig zu haben, so dass es keine Operation stören. –

+0

Oh, danke für Ihre Art Updates. Ich dachte, ich würde die Antwort akzeptieren, was offensichtlich nicht der Fall war. –

Verwandte Themen