如何将单行复制到单个文件中

时间:2017-07-05 05:49:15

标签: python matrix file-io

我不知道代码有什么问题,它没有从shell中获取任何类型的错误消息。 我想做的是:

  1. 将目录中的所有列表文件合并到一个列表中(每行包含一个单个字符串的单个列) - 完成!
  2. 将该列表与大文件进行比较,并将每一条对应的行复制到每行的新单个文件中 - (可能?)完成!但不行。 = /
  3. 将第2步中的文件保存在新的output_directory中。 - 不工作。
  4. 从大文件中删除对应的行并将其保存在同一个output_directory中 - 不知道。 (也许流行?)
  5. 可以命名输出'单行文件'使用与步骤2中相同的字符串?谁能告诉我怎么样? 非常感谢

    到目前为止,这是代码:

    #!/usr/bin/python
    
    import os, sys, glob
    
    #use: thisone.py <lists_dir><majorfile><out_dir>
    
    lists = glob.glob(sys.argv[1]+ '*.txt')
    listsmatrix = []
    for line in lists:
        listsmatrix.append(line.strip().split('\n'))
    
    majorfile = open(sys.argv[2],'r')
    majormatrix = []
    for line in majorfile:
        majormatrix.append(line.strip().split('\t'))
    
    os.mkdir(sys.argv[3]) 
    
    i=0
    for line in majormatrix:
        if line [0] in listsmatrix:
            outfile = open(sys.argv[3]+ 'file'+str(i), 'w')
            outfile.write(line)
            outfile.close()
            i+=1
    

    我会感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

当您使用&#39; w&#39;打开文件时,文件将被清除。因此,每次打开文件时,新行都会覆盖前一行。

两种可能的解决方案:

1)替换&#39; w&#39;使用&#39; a&#39;,以便您附加到文件而不是覆盖它。

2)打开文件一次,理想情况下使用&#39;&#39;阻止,以便即使发生异常也能正确关闭文件:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-sm-4 rounded" style="background-color: #D3D3D3">
          <div class="row clonedInput" id="clonedInput1">
          <div class="col-sm-6 ">
              <label for="diagnosis_data">Medication</label>
                <fieldset class="form-group">
                  <select class="form-control select" name="diagnosis_data" id="diagnosis_data">
                    <option value="choose">Select</option>
                  </select>
                </fieldset>
            <!-- End class="col-sm-6" -->
            </div>
            <div class="col-sm-6">
              <label for="medication_quantity">Quantity</label>
                <fieldset class="form-group">
                  <input type="number" class="form-control" name="medication_quantity" id="medication_quantity">
                </fieldset>
            <!-- End class="col-sm-6" -->
            </div>
            <!-- End class="col-sm-6" -->
          </div>
          <div class="actions pull-right">
            <button class="btn btn-danger clone">Add More</button> 
            <button class="btn btn-danger remove">Remove</button>
          </div>

        <!-- End class="col-sm-4" -->
        </div>