从python中的文件读取

2024-10-04 09:25:51 发布

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

我需要通过读取文件来找出一行中的最大值和最小值,并且应该将最大值除以最小值。我有兴趣用python做这个。在

文件的内容(文件.txt)看起来像这样。。在

A28102_at,151,263,88,484,118,270,458,872,62,194
AB000114_at,72,21,20,61,20,85,20,25,20,65
AB000115_at,281,250,358,118,197,71,168,296,198,113

我面临的问题是我应该忽略第一个值,即直到第一个逗号出现为止,并且无法找到一个方法。我也有兴趣将值存储在数组中,然后进行比较。这种方法是正确的还是有更好的方法被提出?在


Tags: 文件方法txt内容数组at兴趣逗号
3条回答

Python有电池!使用csv模块解析csv文件:

#!/usr/bin/env python
import csv
csvobj=csv.reader(open('file.txt','r'))
for datum in csvobj:
    datum=[float(val) for val in datum[1:]] 
    print(datum)
    maximum=max(datum)
    minimum=min(datum)
    print(maximum/minimum)

# [151.0, 263.0, 88.0, 484.0, 118.0, 270.0, 458.0, 872.0, 62.0, 194.0]
# 14.064516129
# [72.0, 21.0, 20.0, 61.0, 20.0, 85.0, 20.0, 25.0, 20.0, 65.0]
# 4.25
# [281.0, 250.0, 358.0, 118.0, 197.0, 71.0, 168.0, 296.0, 198.0, 113.0]
# 5.04225352113

我不确定这是否是最“Python式”的方法,但它应该行得通。我用的是列表而不是数组。在

for line in fp:
    tokens = line.split(',') # tokenize the line with comma as the only delimiter
    numbers = map(int, tokens[1:]) # skip the first value and convert to integer values
    maxValue = max(numbers) # max() operates on lists or sequences, I can't recall
    minValue = min(numbers) # so does min()
    print maxValue / minValue # TADA

:)

由于您是一个初学者,我不会给出一个复制/粘贴代码片段;如果您自己弄清楚细节,还有更多要学习的内容。但你可以这样做:

  • 在循环中逐行读取文件,将当前行存储在字符串中
  • 对于每一行,用逗号分隔字符串,得到一个列表
  • 删除列表的第一个元素
  • 尽可能多地休息

也许其他人会想出真正的代码。在

相关问题 更多 >