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

2024-05-12 22:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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

我的代码有问题吗?你知道吗


Tags: 文件csvcsvfile代码importtxtformatplotlib
2条回答

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

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

如果将文本文件保存为平面文本文件(纯文本),而不是RTF,那么代码就可以正常工作。你知道吗

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

有一些库支持RTF文件的文本提取,比如textract,但是首先将文本文件保存为纯文本可能更容易。你知道吗

相关问题 更多 >