Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将输入文件的特定部分与另一个文件的特定部分相匹配,以便将内容从输入复制到第二个文件_Python_Python 3.x - Fatal编程技术网

Python 如何将输入文件的特定部分与另一个文件的特定部分相匹配,以便将内容从输入复制到第二个文件

Python 如何将输入文件的特定部分与另一个文件的特定部分相匹配,以便将内容从输入复制到第二个文件,python,python-3.x,Python,Python 3.x,我有一个带有输入文件的目录(总共40个)。除了数字标识符之外,文件名都是相同的 输入目录示例: File1=msl\ustrong>gene001181\u aln.nexus File2=msl\ustrong>gene001650\u aln.nexus File3=msl\ustrong>gene001976\u aln.nexus 等等 我有第二个dir文件(总共40个)使用相同的标识符命名 第二个例子: File1=bipartitionsgene001181.nexus Fil

我有一个带有输入文件的目录(总共40个)。除了数字标识符之外,文件名都是相同的

  • 输入目录示例:
    • File1=msl\ustrong>gene001181\u aln.nexus
    • File2=msl\ustrong>gene001650\u aln.nexus
    • File3=msl\ustrong>gene001976\u aln.nexus
    • 等等
    我有第二个dir文件(总共40个)使用相同的标识符命名

  • 第二个例子:
    • File1=bipartitionsgene001181.nexus
    • File2=bipartitionsgene001650.nexus
    • File3=bipartitionsgene001976.nexus
    • 等等
    我需要将输入文件中的信息附加到具有相同匹配编号标识符的第二个目录的文件中

    例如,来自msl_gene001181_aln.nexus的信息需要进入bipartitions_gene001181.nexus

    我只是不知道如何编写代码,以便将一个文件的内容附加到第二个目录中的正确文件中。这是我正在写的一个较大脚本的最后一部分。我最后被卡住了

    谢谢你的帮助

    编辑

    • 逻辑步骤:
  • 读入我的输入文件
  • 一旦我能够读入输入文件,我就需要提取特定的文本行
  • 获取提取的文本行,并将它们附加到文件名中具有相同匹配编号标识符的输出文件中
  • 代码需要告诉计算机,文件名中包含gene001181的输入文件中的信息需要附加到同样包含gene001181的输出文件中
  • 这段代码提取我需要的信息,并在output dir中使用输入信息创建新的输出文件。我想从我的输入文件中提取我的文本行,并将它们放在我的输出目录中已经的文件中。输入文件和输出文件具有匹配的编号。我只是不知道如何在我的代码中编写这一部分


    很抱歉,我的原始帖子中缺少信息,我感谢您的帮助。

    您可以根据输入文件指定输出文件名

    >>> input_file_name = 'msl_gene001181_aln.nexus'
    >>> gene = input_file_name.split('_')[1]
    >>> output_file_name = f'bipartitions_{gene}.nexus'
    >>> output_file_name
    'bipartitions_gene001181.nexus'
    >>> 
    
    使用os.path.basename仅从输入文件路径获取文件名:

    >>> os.path.basename('/some/random_dir/msl_gene001181_aln.nexus')
    'msl_gene001181_aln.nexus'
    >>> 
    
    

    好吧,那么你认为解决这个问题的逻辑步骤是什么?你能写任何相关的代码吗?你到底在哪里卡住了?堆栈溢出不是代码编写服务;你需要投入一些原创的努力。不管怎样,你不清楚“复制/粘贴”数据从一个文件到另一个文件是什么意思。文件中的现有数据会发生什么情况?我完全理解SO不是代码编写服务。我道歉。我将提供我希望执行的逻辑步骤,然后提供一些可以构建的相关代码。我不想我的帖子太长。我将编辑我的原始帖子。谢谢!我相信这正是我想知道的。明天我必须测试一下,但我会继续给你“接受的答案”。谢谢。你现在可以测试一下,我会再在线一个小时。如果您需要任何帮助或有任何困惑,我可以解决。否则,请在明天留下评论,我会在回复时回复!我得去睡觉了,但我明天肯定会测试一下。我将报告回来,如果它在我的脚本工作。我想确认您的解决方案工作lllrnr101!一旦我知道如何把它写进我的代码,它就像一个符咒。我真的很感谢您的帮助,现在我已经在我的工具箱中添加了另一个Python工具。
    >>> os.path.basename('/some/random_dir/msl_gene001181_aln.nexus')
    'msl_gene001181_aln.nexus'
    >>>