Запуск программы через серию имен входных файлов - PullRequest
0 голосов
/ 14 января 2020

У меня есть программа, которая мне нужна для запуска множества разных входных файлов. Я включил снимок этого кода ниже. Однако для каждой итерации я раскомментирую нужный файл ввода и закомментирую его снова, когда должен быть запущен следующий файл ввода. Есть ли способ автоматизировать это? Как написать файл сценария, который будет запускать программу python для каждого указанного входного файла?

import matplotlib.pyplot as plt
import numpy as np
import sys
import pydicom # Importing DICOM package 
import csv
import os,string
import pandas as pd


from pyctpatientimagenoise import CTPatientImageNoise


#PathDicom = "./Images/AbdPel Low Dose 3.82 mGy - 192.37 mGy cm/1.2.840.113619.2.437.3.3104443552.660.1564558828.49/"

#------------SET of input files <comment out all others except the 1 input file you want to run the prog on>-----------------------

PathDicom = "./Images/DUKEcases/TCGA-DD-A39X/05-08-1994-CT ABDOMEN wow-06316/"

#PathDicom = "./Images/DUKEcases/TCGA-DD-A11C/05-27-1999-Abdomen120LiverBiPhase Adult-61415/"
#PathDicom = "./Images/DUKEcases/TCGA-DD-A11C/10-28-1998-Thorax04ChestBiphaseLiverPanc Adult-45922/"
#PathDicom = "./Images/DUKEcases/TCGA-DD-A39V/03-08-1994-CT ABDOMEN w  PELVIS w-44494/"
#PathDicom = "./Images/DUKEcases/TCGA-DD-A39V/12-29-1993-CT ABDOMEN wow PELVIS w-26981/"
#PathDicom = "./Images/DUKEcases/TCGA-DD-A39Y/09-16-1994-CT CHEST w-40434/"
#PathDicom = "./Images/DUKEcases/TCGA-DD-A39Y/10-06-1994-CT ABDOMEN w  PELVIS w-56041/"
#PathDicom = "./Images/DUKEcases/TCGA-DD-A113/01-02-1999-Abdomen020APRoutineAbdomenPelvis/"


Examname = []
ImageType=[]


Ответы [ 2 ]

2 голосов
/ 14 января 2020

Сценарий запуска:

import subprocess

path_dicom = [
"./Images/DUKEcases/TCGA-DD-A11C/05-27-1999-Abdomen120LiverBiPhase Adult-61415/"
"./Images/DUKEcases/TCGA-DD-A113/01-02-1999-Abdomen020APRoutineAbdomenPelvis/"
 ....
]


for file_path in path_dicom:
     process = subprocess.Popen(args=['python', 'process.py', file_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

     output, error = process.communicate()
     print(process.returncode)

Сценарий обработки файла:

....
from pyctpatientimagenoise import CTPatientImageNoise

if len(sys.argv) < 2:
    print("Usage python process.py [file_path]")
    sys.exit(-1)

PathDicom = sys.argv[1]

Examname = []
ImageType = []
0 голосов
/ 14 января 2020
filepaths = ['foo.bar','foo.baz','foo.bmp']
for filepath in filepaths:
    do_thing()

Я рекомендую прочитать немного больше об основах Python. Это сэкономит ваше время в долгосрочной перспективе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...