2017-06-22 111 views
0

经过一段长时间的计算后,我得到了包含以下字符串的文件。ValueError:无法将字符串转换为浮点数:“nbformat”:4

(每个字符串用“\ t”的分离,并具有“\ n”个在每一行的末尾。)

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 

然后我试图绘制这些文件。 (该文件的名称以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) 

然后我结束了以下错误。

(错误指针指示这发生在线路plt.plot(数据[:,0],数据[:,1],标记= 1)

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

我已经看了一些其他的教程或演练,但不幸的是,无法理解如何解决这个问题。任何帮助或建议将非常感激。

回答

1

您可以直接使用numpy的文件中读入三个数组:

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

或者一个阵列为此事'数据= np.loadtxt(我)' – jadsq

+0

谢谢ImportanceOfBeingEmest和jadsq! 我发现问题是文件名本身:(。 代码工作正常。我已更改文件名明确具有唯一的名称,以便它不会干涉任何操作。 –

+0

哦,谢谢你的类更新。我想我会接受答案,显然不是。 –

相关问题