2014-11-14 2 views
-4

У меня есть список наборов данных, в которых мне нужно извлечь часть имен файлов из другой программы. Очевидно, что я не хочу копировать и вставлять все имена файлов вручную, так как это потребует возраста. Есть ли простой способ сделать это, используя либо python, либо скрипт bash.Извлечение части имени файла в python (или bash) из длинного списка наборов данных

Пример имен файлов являются:

mc12_8TeV.156945.MadGraphPythia_AUET2BCTEQ6L1_DGN2N3Slep_110_90-Nominal_Nominal_ISR_ThreeLep.root 
mc12_8TeV.156946.MadGraphPythia_AUET2BCTEQ6L1_DGN2N3Slep_112_5_12_5-Nominal_Nominal_ISR_ThreeLep.root 

Мне нужно извлечь эти части:

156945.MadGraphPythia_AUET2BCTEQ6L1_DGN2N3Slep_110_90 
156946.MadGraphPythia_AUET2BCTEQ6L1_DGN2N3Slep_112_5_12_5 

Мне нужно знать, как загрузить имена файлов в Python, а затем, как извлечь это его часть.

ответ

1

В bash вы можете использовать cut или sed, взгляните на мужчину. В Python можно использовать метод разделения() и заменить()

https://docs.python.org/2/library/stdtypes.html?highlight=split#str.split

Python путь:

filename = "mc12_8TeV.156945.MadGraphPythia_AUET2BCTEQ6L1_DGN2N3Slep_110_90-Nominal_Nominal_ISR_ThreeLep.root" 

print(filename.replace("mc12_8TeV.", "").replace("-Nominal_Nominal_ISR_ThreeLep.root","") 

Bash путь:

echo "mc12_8TeV.156945.MadGraphPythia_AUET2BCTEQ6L1_DGN2N3Slep_110_90-Nominal_Nominal_ISR_ThreeLep.root" | sed "s/mc12_8TeV\.//g" | sed "s/-Nominal_Nominal_ISR_ThreeLep\.root//g" 
+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – ydaetskcoR

+0

Моей целью было помочь получить ответ, предлагая методы или двоичные файлы, а не просто дать ответ. Это относится к базовому знанию Python, поэтому я дал ссылку на официальный Python (который не будет считаться недействительным до многих лет). В следующий раз я дам покой кода ... – Poko

+1

Ваш ответ появился в очереди низкого качества обзора. Пожалуйста, покажите **, как ** это можно сделать. –

Смежные вопросы