【发布时间】:2025-11-28 13:45:01
【问题描述】:
我目前有一个 CSV 文件,当在 Excel 中打开时,它共有 5 列。只有 A 列和 C 列对我有任何意义,其余列中的数据无关紧要。
从第 8 行开始,然后以 7 的倍数工作(即第 8、15、22、29、36 行等),我希望使用 Python 2.7 创建一个字典,其中包含来自这些字段的信息。 A 列中的数据将是键(6 位整数),C 列中的数据是键的相应值。我试图在下面强调这一点,但格式不是最好的:-
A B C D
1 CDCDCDCD
2 VDDBDDB
3
4
5
6
7 DDEFEEF FEFEFEFE
8 123456 JONES
9
10
11
12
13
14
15 293849 SMITH
如上所述,我希望从 A7 (DDEFEEF) 中提取值作为我字典中的键,“FEFEFEFE”是相应的数据,然后在我的字典中添加另一个条目,使用“2938495”跳转到第 15 行" 是我的关键,而 "Smith" 是各自的值。
有什么建议吗?源文件是一个 .txt 文件,其中的条目以制表符分隔。 谢谢
澄清:
澄清一下,到目前为止,我已经尝试过以下方法:-
import csv
mydict = {:}
f = open("myfile", 'rt')
reader = csv.reader(f)
for row in reader:
print row
上面只是一次打印出所有内容。我确实尝试过“for row(7) in reader”,但这返回了一个错误。然后我研究了它并尝试了以下方法,但它也没有工作:
import csv
from itertools import islice
entries = csv.reader(open("myfile", 'rb'))
mydict = {'key' : 'value'}
for i in xrange(6):
mydict['i(0)] = 'I(2) # integers representing columns
range = islice(entries,6)
for entry in range:
mydict[entries(0) = entries(2)] # integers representing columns
【问题讨论】:
-
@jdigital - 原始问题已编辑以包含我迄今为止尝试过的内容
-
“从第 8 行开始”与“A7”不一致,“6 位整数”与“DDEFEEF”不一致 -- 请编辑您的问题。
-
@John Machin - A7 不是我要从中提取数据的单元格,它是 A8。 A7 中的数据只是为了举例说明我的 CSV 文件中存在哪些其他数据。由于它不是 6 位整数,因此将被忽略。谢谢
-
@thefragileomen:尝试阅读您自己的问题:“我希望从 A7 (DDEFEEF) 中提取值作为我字典中的键,而“FEFEFEFE”是相应的数据”——正如我所说,不一致。
标签: python parsing csv dictionary