制表符分隔数据python

2024-04-20 15:18:37 发布

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

必须开始,我对Python还很陌生,而且还很不擅长,但相信最终还是值得学习的。在

我的问题是我有一个设备可以打印出一个.txt格式的值,但是用制表符而不是逗号来分隔。例:50\t50\t66\t0\t4。。。在

我想要的只是用这些数据绘制一个简单的柱状图。 我确实意识到这应该是最简单的事情,但不知怎么的,我在python nooby的讲座中找到了解决方案,我也不能很好地在网上搜索。在

import matplotlib.pyplot as plt
#import numpy as np

d = open('.txt', 'r')
d.read()

plt.hist(d)
plt.show()

附言:numpy只是我之前练习的一个剩余部分


Tags: 数据importnumpytxtas格式绘制plt
3条回答

如果您研究csv,则可以使用delimiter='\t'作为选项之一来处理该文件。这将把所需的分隔符从“,”更改为“\t”(制表符)。你会用同样的方法来处理。在

将read()的字符串结果赋给变量s:

s = d.read()

split将把字符串s分解为一个字符串列表:

^{pr2}$

map将对列表的每个元素应用函数:

s = map(float, s)

别担心,每个人都必须从某个地方开始。您的思路是正确的,并且是正确的Python是一种很好的学习语言。有很多是可以做到的,但这里有一个方法。按照这个例子的编写方式,它将在文件中每行生成一个直方图。如果需要,可以修改或更改该行为。在

请注意,CSV模块将负责通过传递引用将文件中的数据转换为float=csv.QUOTE_非数字读卡器的建造者。这可能是在CSV/TSV文件中处理数字转换的首选方法。在

import csv
import matplotlib.pyplot as plt

data_file = open('testme.txt')
tsv_reader = csv.reader(data_file, delimiter='\t',
                        quoting=csv.QUOTE_NONNUMERIC)

for row in tsv_reader:
    plt.hist(row)
    plt.show()

我省略了一些内容,比如正确的exception handling,以及使用context manager打开文件,这是最佳实践,并在csv module documentation中演示过。在

一旦你对这门语言有了更多的了解,我建议你进一步深入研究这些科目。在

相关问题 更多 >