在 Python 中解析复杂制表符分隔/csv 文件的循环

2024-06-28

需要明确的是,我对编程非常陌生,而且我正在使用 Python 3.3!现在我有很多文件具有相同的基本布局。每个文件有 9 列,以制表符分隔,标题行数量可变 - 但大多数文件有 5 行。行或列没有标题!

看起来像这样:

#header1
#header2
#header3
#header4
#header5
ID1    asdf    asdk    asdfk    asdfkl    adsfkln    askdlfn   safsda    asdf    Notes1..
ID2    asdf    asdk    asdfk    asdfkl    adsfkln    askdlfn   safsda    asdf    Notes2..
ID3    asdf    asdk    asdfk    asdfkl    adsfkln    askdlfn   safsda    asdf    Notes3..
ID4    asdf    asdk    asdfk    asdfkl    adsfkln    askdlfn   safsda    asdf    Notes4..

我想要的唯一信息是第一列,其中包含 ID,最后一列包含有关每个 ID 的注释。我正在拍摄一本类似这样的字典

{'ID1': [notes1...]
 'ID2': [notes2...]....
 'ID1234': [notes1234...]}

但我也会对字典列表或类似的东西感到满意。

因此,我首先将文本转换为列表列表,以便我可以按索引查找条目:

import csv

list_all = list(csv.reader(open(r'complex_tabbed_file.gff', 'rb'), delimiter='\t'))

d = dict()
ID = data[5][0]     #starting at 5 to skip the header lines
notes = data[5][8]
d[ID]= notes

print (d)

这为我提供了我正在寻找的信息,但一次只读取一个条目。我需要创建一个循环来读取包含数百个条目的整个文件..关于起点的建议?

我研究并发现了这一点:使用 csv 模块从 csv 文件读取特定列? https://stackoverflow.com/questions/16503560/read-specific-columns-from-csv-file-with-python-csv

它描述了类似的情况,但编码有点超出我的能力。由于我是新手,我很难将此示例应用到我的特定情况=(

这是我在迭代方面尝试过的:

i=0

if i < 4:
    i= i+1

if i >= 5:
    ID = list_all[i][0]
    notes = list_all[i][8] 
    i= i+1

print (d)

这会返回一个空字典 ( d={ } ) 不好。

也尝试过

d = dict()  
i=5
for line in list_all: 
    ID = list_all[i][0]
    notes = list_all[i][8] 
    i = i+1

print (d)

这给出了哦,如此可爱的“列表索引超出范围”错误消​​息。我真的很感激任何建议,谢谢!


您可以通过迭代每一行来解决它,并丢弃那些只有一个字段(标题)的行:

import csv
import sys

d = dict()

with open(sys.argv[1], newline='') as csvfile:
    csvreader = csv.reader(csvfile, delimiter='\t')
    for row in csvreader:
        if len(row) == 1: continue
        _d = {row[0]: [row[-1]]}
        d.update(_d)

print(d)

像这样运行它:

python3 script.py infile

得出:

{
    'ID4': ['Notes4..'], 
    'ID1': ['Notes1..'], 
    'ID2': ['Notes2..'], 
    'ID3': ['Notes3..']
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中解析复杂制表符分隔/csv 文件的循环 的相关文章

  • 如何在Windows上安装PyGI(Python Gobject Introspection)?

    安装Python解释器 http python org ftp python 2 7 2 python 2 7 2 msi http python org ftp python 2 7 2 python 2 7 2 msi and http
  • 无法在 BeautifulSoup 中获得正确的链接

    我正在尝试解析一些 HTML 并且想提取与特定模式匹配的链接 我正在使用find使用正则表达式的方法 但它没有给我正确的链接 这是我的片段 有人可以告诉我我做错了什么吗 from BeautifulSoup import Beautiful
  • f2py:公开“已使用”模块的参数

    我认为这个问题已经在某个地方得到解决 但我花了大量的时间四处寻找答案 包括深入研究源代码 我试图将问题放在第一段中 其余部分显示了问题的基本示例 我正在尝试编译一个包含USE指向另一个更通用的模块的语句 我更愿意将使用的模块分开 以便它可以
  • 持久子进程.Popen 会话

    我正在尝试运行一个命令 然后在同一环境中运行另一个命令 比如说 如果我在第一个命令中设置环境变量 我希望它可用于第二个命令 我试过这个 import subprocess process subprocess Popen echo test
  • pandas.algos._return_false 在 CentOS 上使用 dill.dump_session 导致 PicklingError

    我有一个代码框架 其中涉及使用 dill 转储会话 这曾经工作得很好 直到我开始使用 pandas 以下代码在 CentOS 6 5 版本上引发 PicklingError import pandas import dill dill du
  • 如何向 CSV 文件添加列?

    我有以下 CSV 文件 header 1 header 2 header 3 summin 1 summin 2 summin 3 summin 4 summin 5 summin 6 我如何使用 CSV 类附加一列数据 结果将如下所示 h
  • 在Python中使用argparse解析整个JSON

    我正在尝试使用 ARGPARSE 库在一个简单的参数中解析整个 Json 问题是当它遇到儿子内部的不同元素 例如 和 时 它会突然停止 这是测试代码 parse py import argparse parser argparse Argu
  • 导入pygame时出错

    我已经使用以下命令通过 Anaconda 安装了 pygame conda install channel https conda anaconda org kne pygame 然后我尝试导入 pygame 并收到以下错误 Traceba
  • 为 scipy 安装 BLAS 和 LAPACK 最简单的方法是什么?

    我想运行一个别人已经准备好的程序 其中包括 scipy 我尝试安装 scipy pip install scipy 但这给了我一个很长的错误 我知道 Anaconda 和 Canopy 有很多方法 但我认为这些方法还有很长的路要走 我想走近
  • 在django中使用pre_save时取消保存模型

    我有一个模型 class A models Model number models IntegerField 但是当我调用 A save 时 我想确保该数字是素数 或其他条件 否则应该取消保存指令 那么如何取消pre save信号接收器中的
  • PyCharm 中的进程已完成,退出代码为 137

    当我在 PyCharm 中手动停止脚本时 进程以退出代码 137 结束 但我没有停止脚本 仍然得到退出代码 137 有什么问题吗 Python版本是3 6 运行xgboost train 方法时处理完成 退出代码 137 意味着您的进程被
  • numpy 不规则跨步数组

    引用文档 http docs scipy org doc numpy reference arrays ndarray html internal memory layout of an ndarray关于内存中的 numpy 数组结构 N
  • 使用python docx合并word文档

    我有几个单词文件 每个文件都有特定的内容 我想要一个片段来展示或帮助我弄清楚如何在使用 Python 时将单词文件合并到一个文件中docx图书馆 例如 在 pywin32 库中我执行了以下操作 rng self doc Range 0 0
  • 关闭Python线程以防止内存泄漏

    如何关闭 Python 线程以确保线程内内存中的所有内容都从内存中清除 目前 我有一个通过以下方式加入的线程列表 for t in threadlist t join 5 这些线程最初是通过循环传递给每个线程的参数列表来创建的myfunc它
  • 如何 setup.py 我依赖 PyTorch 的包

    我正在创建一个依赖于 PyTorch 的 Python 包 PyTorch的安装命令如下 来自https pytorch org https pytorch org pip3 install torch 1 8 2 cu102 torchv
  • Arcgis:如何获取设备位置

    我如何尝试在我的应用程序中实现这些代码 但它不起作用 我不知道哪里出了问题 基本上 当我启动设备位置的示例时 它没有显示我当前所在的位置 并且我没有看到任何与我当前所在位置类似的蓝点 我唯一看到的就是地图 只是一个简单的缩小地图 如果有人可
  • PySpark 将模型预测与未转换的数据对齐:最佳实践

    使用 PySpark 的 ML 模块 经常会发生以下步骤 在数据清理之后等 执行特征和目标转换管道 创建模型 从模型生成预测 将预测和原始数据集合并在一起 供业务用户和模型验证之用 摘取一段精简的代码片段 predictions model
  • Django 和原始 Python 之间的性能

    我想知道使用纯 python 文件制作网页和使用 Django 之间的性能差异是什么 我只是想知道两者之间是否有显着差异 谢谢 Django 是纯Python 因此每个类似语句或表达式的执行时间将是相同的 需要理解的是 在进行 Web 开发
  • 任何方法来跟踪Python中的最后5个数据点

    所以我有一个包含多个数字的数组 随着我的脚本运行 越来越多的数字被附加到该数组中 但是 我对所有数字并不感兴趣 而只想跟踪最后 5 个数字 目前 我只是将所有数字存储在数组中 然而 这个数组变得非常大并且充满了不必要的信息 我考虑过创建一个
  • 在 Django 中保存文件之前更改文件名

    我有下一个代码在 django admin 中上传时重命名我的文件 在 models py 中 def get file path instance filename ext filename split 1 filename s s uu

随机推荐

  • 三个js中的场景旋转问题

    我尝试动态地旋转有孩子的场景 一切工作正常 但是当我平移相机并旋转场景时 轨道控制的枢轴点会损坏并且平移无法正常工作 主要思想是创造围绕物体旋转的 hdr 幻觉 抱歉我的英语不好 这真的很难描述 希望你能理解我的想法 这是一个小代码笔exa
  • macOS High Sierra 与 CAShapeLayers、NSImageView、NSTableView 冲突

    我已经更新到 macOS High Sierra 现在我的项目出现了意想不到的问题 这些问题以前在 macOS Sierra 中没有见过 我有自定义 NSImageView 并在其中拖放图像后NSImageView我可以使用在图像顶部绘制矩
  • 覆盖 Woocommerce 子主题不起作用

    从我的子主题覆盖 Woocommerce 文件根本不起作用 我确信一切都是100 正确的 真是令人沮丧 我正在遵循此页面视频中的每一步 https docs woocommerce com document template struct
  • C++ unique_ptr 与友元类私有析构函数

    我有这样的安排 class LexedFile friend class Lex private LexedFile class Lex private std map
  • 如何使用 GDB 从多个文件中查找分段错误

    我在面试中被问到如何使用 GDB 调试 C 程序中的分段错误 我告诉他们我们可以用以下命令编译我们的程序 g选项 这样它将调试信息添加到二进制文件中 并且可以读取核心转储文件 但面试官告诉我 如果他有 3 到 4 个文件编译在一起 但其中一
  • 我可以使用 443 以外的其他端口进行 HTTPS/SSL 通信吗?

    443 端口通常用于 HTTPS SSL 但这是我们可以选择 HTTPS SSL 通信的唯一选项吗 如果没有 为什么 端口号并不 神奇 您可以使用 1 65535 之间的任何您喜欢的端口 只有2个条件 服务器和客户端都必须 同意 使用相同的
  • 如何使用 JavaScript 查找字符串中的整数之和

    我使用正则表达式创建了一个函数 然后通过将前一个总计添加到数组中的下一个索引来迭代数组 我的代码不起作用 我的逻辑有问题吗 忽略语法 function sumofArr arr here i create a function that h
  • 在“git revert --continue”期间绕过预提交挂钩

    我当时正在做一个git revert 之前的恢复 这导致了一些合并冲突 解决冲突后 我的预提交挂钩引发了一些代码嗅探器问题 由于这些代码嗅探器通知已在其他地方修复 我想在此时使用绕过预提交挂钩git revert continue no v
  • ngx_http_brotli_filter_module.so" 与 /etc/nginx/nginx.conf:1 中的二进制不兼容

    Using Nginx 1 17 3 and Nginx 1 14 0在两台独立服务器上的 Ubuntu 18 上 两者都显示相同的错误ngx http brotli filter module so is not binary compa
  • cytoscape.js 页面上有多个实例

    我在同一网页上设置两个 cytoscape 实例时遇到问题 我有两个窗口变量 cy 和 cy2 用于不同的图形 它们是功能不同的图表 需要在页面的不同部分可用 我想知道如何正确设置 当我查看页面元素时 未显示的元素的底层画布的宽度和高度被
  • 绝对路径到相对路径(Eclipse、JSP)[重复]

    这个问题在这里已经有答案了 我正在 Eclipse JSP 中制作一个 Web 应用程序 并使用 Tomcat 作为服务器 集成到 Eclipse 中 我必须创建下面的对象并指定配置文件的路径 这个绝对路径效果很好 Store store
  • 读取 12 MB 的大文件时出现问题 (java.lang.OutOfMemoryError)

    我需要打开一个 12 MB 的文件 但实际上我正在创建一个 12834566 字节的缓冲区 因为文件的大小是 12MB 而且我正在为 Android 移动系统开发这个应用程序 然后 我想我必须用 for 读取 1024 KB 的块而不是 1
  • 现有的 Angular 2 应用程序和 Cordova

    我做了一些搜索 似乎找不到我的问题的答案 我有一个现有的 Angular 2 应用程序 我可以使用 Cordova 为多个平台构建它吗 如果没有 是否需要采取特殊措施来实现这一目标 有没有关于其工作原理的实际文档 在提出建议之前 我会先声明
  • 如何计算重叠面积? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有两个重叠的矩形 我需要计算重叠面积 宽度和高度 请这张图 如果矩形 r1 位于 x1 y1 处 宽度为 w1 h1 同样 矩形 r2 位于 x2 y
  • 适用于 Windows Phone 8 的 Http Post

    我是 C 新手 所以我想知道是否有人可以帮助我解决这个问题 我正在尝试将 HttpPost 从 Windows Phone 8 发送到服务器 我找到了两个我想合并的例子 第一个是发送 Http Post 的示例 http msdn micr
  • Django 表单指示输入类型

    恐怕我正在努力解决另一个基本问题 我已经浏览了各种 Django 文档页面并搜索了这个站点 我在这里找到的唯一内容是在 2013 年 其中建议设置自定义过滤器模板 无论如何 我试图生成我自己的表单 而不是使用 Django 自己的方式通过
  • 创建初始值为 0 的信号量会导致执行问题

    我正在学习 GCD 并有关于信号量的问题 这是我的代码 class ViewController UIViewController var semaphore dispatch semaphore t nil override func v
  • 如何在机器代码级别处理数学等式运算符

    所以我今天想问一个相当存在主义的问题 我觉得大多数程序员都会跳过这个问题 只是将其视为有效的东西 而没有真正询问它 如何 工作的问题 问题相当简单 gt 运算符如何编译为机器代码 以及该机器代码是什么样的 在最底部 它必须是大于测试 并与
  • 如何在谷歌地图中隐藏当前位置? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我在我的项目中实现了谷歌地图 我想隐藏默认的当前位置标记 请参阅附图 但是 我需要显示允许转到我当前位置的按钮 标记在右上角 您可以使用 G
  • 在 Python 中解析复杂制表符分隔/csv 文件的循环

    需要明确的是 我对编程非常陌生 而且我正在使用 Python 3 3 现在我有很多文件具有相同的基本布局 每个文件有 9 列 以制表符分隔 标题行数量可变 但大多数文件有 5 行 行或列没有标题 看起来像这样 header1 header2