我正在关注YouTube上的本教程:https://www.youtube.com/watch?v=QyhqzaMiFxk&index=7&list=PLQVvvaa0QuDfefDfXb9Yf0la1fPDKluPF。
目的是将.txt文件导入Phyton,并使用其数据在matplotlib中绘制图形。在此之前要做的一件事是将字符串转换为整数/浮点数。
下面是我的代码:
import matplotlib.pyplot as plt
import csv
x = []
y = []
with open('ages.txt', 'r') as csvfile:
plots = csv.reader(csvfile, delimiter = ',')
for row in plots:
x.append(int(row[0]))
y.append(int(row[1]))
plt.plot(x,y)
plt.show()
但是,我无法在视频中得到结果。下面是错误消息:
x.append(int(row[0]))
ValueError: invalid literal for int() with base 10: '{\\rtf1\\ansi\\ansicpg1252\\cocoartf1504\\cocoasubrtf830'
我的.txt文件如下
1,56
2,27
3,65
4,44
5,38
6,97
7,56
8,35
9,64
10,12
我的代码有问题吗?
答案 0 :(得分:1)
如果将文本文件另存为纯文本文件(纯文本),而不是RTF,则代码可以正常工作。
RTF文件包含用于文本布局和格式的额外数据,这导致您的代码在读取每一行时吸收了额外的元数据。
有些库支持RTF文件的文本提取,例如textract,但是将文本文件另存为纯文本可能更容易。
答案 1 :(得分:0)
如果将文件另存为纯文本,则代码似乎可以正常工作。但是,您可以做一些更简单的事情:
values = np.loadtxt('ages.txt', delimiter=',', dtype=int)
plt.plot(*values.T)