我有一个带有一系列数字的纯文本文件,每行一个。我需要将这些值导入列表。我目前正在学习python,我不确定这是一种快速甚至是“标准”的方式(同样,我来自R所以我已经习惯了scan
或{{1}使这项任务变得轻而易举的功能)。
文件看起来像这样(注意:这不是csv文件,逗号是小数点):
readLines
因为它使用逗号而不是'。'对于小数点,我猜任务有点难,但它应该或多或少相同,对吧?
这是我目前的解决方案,我觉得这很麻烦:
204,00
10,00
10,00
10,00
10,00
11,00
70,00
276,00
58,00
...
提前致谢。
答案 0 :(得分:1)
<强>更新强>
我没有意识到逗号是小数点分隔符。如果区域设置设置正确,那么这样的事情应该起作用
lines = [locale.atof(line.strip()) for line in open(filename)]
如果没有,你可以做
lines = [float(line.strip().replace(',','.')) for line in open(filename)]
lines = [line.strip() for line in open(filename)]
如果您想将数据作为数字......
lines = [map(float,line.strip().split(',')) for line in open(filename)]
答案 1 :(得分:1)
bsoist's answer会很好。如果没有,您只需读取整个文件并在换行符(\n
)上拆分,然后使用列表推导进行替换。
with open('some_file.txt', 'r') as datafile:
data = datafile.read()
x = [float(value.replace(",", ".")) for value in data.split('\n')]
答案 2 :(得分:0)
更简单的方法就是
Read = []
with open('File.txt', 'r') as File:
Read = File.readLines()
for A in Read:
print A
&#34; with open()&#34;将打开文件并在完成阅读后退出。这是IIRC的良好做法。
然后For循环将循环遍历Read并打印出行。