当前位置: 首页 > 面试题库 >

使用Python解析CSV /制表符分隔的txt文件

白坚壁
2023-03-14
问题内容

我目前有一个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”是各自的数据,然后向我的字典中添加另一个条目,并跳到第15行,“ 2938495”是我的字典键和“史密斯”是各自的值。

有什么建议?源文件是一个.txt文件,其中的条目使用制表符分隔。谢谢

澄清:

为了澄清,到目前为止,我已经尝试了以下方法:

import csv

mydict = {:}
f = open("myfile", 'rt')
reader = csv.reader(f)
    for row in reader:
        print row

上面只是一次打印出所有内容。我确实尝试过“针对阅读器中的row(7)”,但这返回了错误。然后,我对其进行了研究,并在下面进行了尝试,但两者均无效:

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

问题答案:

首先将文本变成列表列表。这将负责解析部分:

lol = list(csv.reader(open('text.txt', 'rb'), delimiter='\t'))

其余工作可以通过索引查找完成:

d = dict()
key = lol[6][0]      # cell A7
value = lol[6][3]    # cell D7
d[key] = value       # add the entry to the dictionary
 ...


 类似资料:
  • 问题内容: 我目前有一个CSV文件,在Excel中打开时,总共有5个柱。只有A列和C列对我和中的数据有意义 其余的列不相关。从第8行开始,然后以7的倍数工作(即第8、15、22行, 29,36等等),我正在寻找用Python2.7和来自这些字段的信息。A列中的数据将是键(6位数字 整数),C列中的数据是键的相应值。我已经试图在下面突出显示此内容,但格式不正确最佳: 如上所述,我希望从A7(DDEF

  • 问题内容: 所以我想将一个简单的制表符分隔的文本文件转换为一个csv文件。如果我使用string.split(’\ n’)将txt文件转换为字符串,则会得到一个列表,其中每个列表项都是字符串,每列之间带有’\ t’。我当时以为我可以用逗号替换’\ t’,但它不会像清单中的字符串一样对待字符串,并允许我使用string.replace。这是我的代码的开始,仍然需要解析选项卡“ \ t”的方法。 问题

  • TXT、CSV 记录分隔符 指定文件的记录分隔符。 分隔符 导入以分隔格式的文本文件。 字段分隔符, 文本标识符号 指定字段的分隔符和用于括住文本值的字符。 固定宽度 导入固定宽度格式的文本文件。若要界定源列的边界,请在所需的位置上点击以添加一条中断线。你可以简单地拖曳中断线来移动它,或双击它来移除。 XML 表示一个表列的标签或表示一个集合行的标签 定义一个标签以标识行。 将标签的属性视为表字段

  • TXT、CSV 字段分隔符 指定字段的分隔符。 记录分隔符 指定文件的记录分隔符。 文本标识符号 指定用于括住文本值的字符。 XML 表示一个表列的标签或表示一个集合行的标签 定义一个标签以标识行。 将标签的属性视为表字段或将标签的属性视为集合字段 例如: <row age="17"> <id>1</id> <name>sze</name> </row> 如果勾选了这个选项,Navicat 将会把

  • 我在使用Pandas读取选项卡分隔的文件时遇到问题。 所有单元格值都有双引号,但对于某些行,有一个额外的双引号打断了整个过程。例如: 我得到的错误是:错误标记数据。C错误:第8355行预期有31个字段,SAW58 我使用的代码是: 它适用于其余文件,但不适用于出现额外双引号的文件。

  • 我试图读取一个标签分隔值txt文件在python中,我从AWS存储中提取。( 所以这只是为了连接到AWS。接下来,当我运行这段代码来读取存储在AWS中的以制表符分隔的txt文件时 我得到了这个输出,这不是我想要的。使用方言='excel-tab'而不是分隔符='\t'也给了我相同的输出