将处理过的数据移到另一个文件

时间:2017-04-12 15:15:30

标签: python python-2.7 unix move-semantics shutil

所以我试图将一些预处理的数据移到正确的文件夹中,因为我的其他代码并没有在正确的位置输出(在另一个问题和我正在处理的事情上询问)并且我一直遇到麻烦。我的代码发布在下面。我一直收到这个错误(发布在下面)。我非常接近,但我需要代码来搜索一个目录以获取文件。它似乎在查看我的subject_dir而不是我的dti_dir(即使我在代码中指定了这个)。我想我可能只是错误地输入了我的shutil.move命令的路径。也许我需要加入src的abspath?如果是这样,我不确定正确的语法。我再次编码很新,所以如果这是一个微不足道的问题,我道歉!

IOError: [Errno 2] No such file or directory:
'/gandg/infinite/imaging_data/individuals/inf0117/1/dtifit_L1.nii.gz'

基本上我要做的是

  1. 使用" dtifit _"查找src中的所有文件在他们的标题
  2. 将所有这些文件移至dst
  3. 我非常感谢任何建议,请原谅任何菜鸟错误,因为我对编码和尝试学习都很陌生!

    # Import modules
    
    import _utilities as util
    import os
    from nipype.interfaces import fsl
    import shutil
    
    # Environment and shortcuts
    
    subject_dir = os.getcwd()
    dti_dir = os.path.abspath( os.path.join(subject_dir, 'dti'))
    output_path     = '../dti/dtifit'
    output_basename = os.path.abspath(os.path.join(dti_dir, output_path))
    
    # Move Data
    
    src = dti_dir
    dst = output_basename
    print('src')
    print(src)
    print('dst')
    print(dst)
    files = os.listdir(src)
    
    for f in files:
        if (f.startswith("dtifit_")):
            shutil.move(os.path.abspath((f), dst)
    

1 个答案:

答案 0 :(得分:0)

我意识到我知道自己问题的答案,所以我会在这里发布,以帮助处于类似情况的其他人。我是对的,我需要用我的f加入我的src,但是我的()在我尝试的前几次放错了所以如果你遇到错误就要注意这一点。如果这个问题浪费在更有经验的编码员的时间,我道歉!

for f in files:
    if (f.startswith("dtifit_")):
        shutil.move(os.path.abspath(os.path.join(src,f)), dst)