【问题标题】:Intricate file/text manipulation复杂的文件/文本操作
【发布时间】:2016-08-15 04:44:38
【问题描述】:

我需要执行一些相当棘手的文件操作,但我的编码相当糟糕,而且我立即不知道从哪里开始。任何帮助都会很棒,所以在此先感谢。最好使用 Shell 或 Python,因为它们是我粗略了解的语言,但是如果有其他语言的简单解决方案,我愿意接受。


我有 2 个包含相关信息的大型文件,但是它们没有正确对齐它们的列,这使得很难匹配数据。更复杂的是,它们在小数点后有不同的值,尽管感兴趣的只是小数点前的值。

那么我需要做什么:

  • 读取file1column1row1,但忽略小数点后的所有值。

  • 读取file2 并搜索column1 以获取取自file1 的值,同时再次忽略小数点后的内容。

  • file2 中找到相关值后,将这两行与各自行中的其余数据一起输出到一个新文件 (file3)。

这是第一步,如果有人能帮助我到达那里,我将不胜感激。下一步是对该过程应用循环,使其移动到file1, line2 并重复该过程。

【问题讨论】:

  • 与其居高临下,不如简单地提出一个起点。当您甚至不知道自己在做什么时,很难使用教程。感谢您的帮助。
  • @Vlad:我建议不要在 Shell 中这样做。我个人会用 Ruby 编写它,但这只是我个人的偏好。 Python 或 Perl 也可以做到这一点。

标签: python shell data-manipulation


【解决方案1】:

您需要比现在更好地学习 Python。这是您需要做的一个大纲。这种“文件操作”非常典型。

  1. 创建一个正则表达式,匹配来自file1file2 的行(如果文件格式不同,则为两个正则表达式)。在您的正则表达式中包含用于捕获对您很重要的组的语法。
  2. 逐行阅读file1
  3. 读取每一行时,将其与您的正则表达式匹配,找到重要的组,并将它们存储在哈希中。
  4. 现在逐行阅读file2
  5. 读取每一行时,将其与您的正则表达式进行匹配,找到重要的组,然后在哈希中搜索匹配项。
  6. 找到匹配后,输出到file3
  7. 回到 4 并重复。

【讨论】:

    猜你喜欢
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多