Python 导入.txt文件时将字符串转换为int

Python 导入.txt文件时将字符串转换为int,python,matplotlib,Python,Matplotlib,我正在Youtube上关注此教程: 其目的是将.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

我正在Youtube上关注此教程:

其目的是将.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

我的代码有什么问题吗?

如果将文件保存为纯文本,代码似乎正常工作。但是,您可以做一些更简单的事情:

values = np.loadtxt('ages.txt', delimiter=',', dtype=int)
plt.plot(*values.T)

如果将文本文件保存为平面文本文件(纯文本),而不是RTF,则代码工作正常

RTF文件包含用于文本布局和格式的额外数据,这会导致代码在读取每一行时获取额外的元数据


有一些库支持RTF文件的文本提取,例如,但是从一开始就将文本文件保存为纯文本可能更容易

在我看来,csv.reader提取的不仅仅是您期望的两个数据列。
打印(绘图)
返回什么?该错误基本上告诉您,行[0]无法转换为整数。当第[0]行为“{\\rtf1\\ansi\\ansicpg1252\\cooartf1504\\cocooasubrtf830”时,这是有意义的。数据是否有标题?“我的代码有问题吗?”更有可能的是,文件的内容不是您认为的内容,而是您将“txt文件”保存为RTF文件。这是一种比纯文本更复杂的文件类型。