python - 用 Python 解析

标签 python parsing csv readlines

我正在尝试解析一个文件。目前,我有这个文件:

word1 52345325
word2 12312314
word3 7654756
word4 421342342

我正在尝试将 word1 word2 word3word4 存储到一个数组中,以及与这些相邻的数字词到另一个数组。

所以如果我说 a[0] 我应该得到 word1,如果我说 b[0] 我应该得到 52345325 等等。

我正在考虑制作一个键值对字典对象,但在这一点上可能有点复杂,因为我刚刚接触 python。

我目前正在这样做,但当然,它不起作用 :P

def csvStringParser():
    a = {}
    b = {}
    i = 0
    f = open('/Users/settingj/Desktop/NOxMultiplier.csv')
    for line in f.readlines():
    reader = csv.reader(line.split('\t'), delimiter='\t')
        for row in reader:
            #print '\t'.join(row)                                                                                                                                                                                                                                             
            #print i                                                                                                                                                                                                                                                          
            a[i] = '\t'.join(row)
            b[i] = '\t'.join(row)
            print a[i]
            print b[i]
            i+=1

老实说,这是我使用 Python 的第一个小时。我可以在 C++ 中轻松地做到这一点,但我目前只是想学习 Python 以了解它比 C++ 有更大的好处/简单性。

最佳答案

import csv

a = {}
with open('/Users/settingj/Desktop/NOxMultiplier.csv') as f:
    reader = csv.reader(f, delimiter='\t')
    for row in reader:
        a[row[0]] = row[1]
print a

对于两个数组:

a = []
b = []
with open('/Users/settingj/Desktop/NOxMultiplier.csv') as f:
    reader = csv.reader(f, delimiter='\t')
    for row in reader:
        a.append(row[0])
        b.append(row[1])
print a
print b

甚至与 zip 类似的解决方案:

with open('/Users/settingj/Desktop/NOxMultiplier.csv') as f:
    a, b = zip(*csv.reader(f, delimiter='\t'))
print a
print b

关于python - 用 Python 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198713/

相关文章:

python - 生成结果值最接近要求的方程,有速度问题

python - 如何使用 Celery 顺序执行独立任务?

python - 使用python将命令解析为另一个软件界面

采用基数的 JavaScript 函数或方法?

mysql - 如何在sql中存储然后通过CSV进行搜索?

python - 为什么 inspect.currentframe 比 sys.currentframe 慢_getframe?

python - 异步和异步错误——TypeError : 'coroutine' object is not callable

c# - DateTime.ParseExact - 为什么 yy 变成 2015 而不是 1915

postgresql - 错误 : date/time field value out of range in Postgresql

c++ - 如何使用 C++ 跳过 csv 中的标题行