Пакетная обработка файлов

про науку и образование

Moderator: InterimModers

Пакетная обработка файлов

Postby dr_Strangelove » Sat Jun 16, 2018 10:56 am

Коллеги, мне нужна помощь слесаря по компьютерам.
Дано:
около 500 файлов со спектрами, формат, приблизительно, такой:
Bla Bla Bla
Bla wavenumber day month ear bla bla bla
bla bla bla (суммарно около 20 строчек)
>>>>>Begin Spectral Data<<<<<
189.78 0.000
190.14 0.000
190.51 -0.800
и т.д., в конце
866.16 -1.200
866.45 -3.300
>>>>>End Spectral Data<<<<<
Файлы имеют название типа Bla Bla Bla485.blablablabla
Хочу: получить около 500 файлов с названиями "485.sp" и содержанием типа:
"189.78 0.000
190.14 0.000
190.51 -0.800
и т.д., в конце
866.16 -1.200
866.45 -3.300"
Как проще всего решить эту проблему? На вин-10, разумеется. Я так понимаю, можно написать батник, но не умею этого делать
Помогите, пожалуйста
Дух свободы… К перестройке // ‎ Вся страна стремится, // Полицейский в грязной Мойке //‎ Хочет утопиться.
Не топись, охранный воин,— // ‎ Воля улыбнётся! // Полицейский! будь покоен — // ‎ Старый гнёт вернется
User avatar
dr_Strangelove
 
Posts: 652
Joined: Mon Oct 18, 2004 9:17 pm
Location: Химфак-ФНМ-Химфак+ФИАН

Re: Пакетная обработка файлов

Postby IB » Sat Jun 16, 2018 12:10 pm

ИСН подскажет лучше.
Но раз я уже открыл тему, то выскажу как бы я это делал я (а это не оптимально - просто мы все уж такие, что используем то, что у нас под руками).

Есть три пути:
1. Самый простой с точки зрения наличия знаний, но самый муторный с точки зрения реализации - макросы в Word на Visual Basic. Там можно сделать всё, что угодно в таком плане, но придётся день читать документацию и подгонять всё, чтобы работало. Мне бы хватило часа (если повезёт, и сразу полетит, то и 15 минут, но там могут быть нюансы).
2. Средний, и насколько я понимаю оптимальный для Вас. Notepad++ автозамены с Regex.
How-to:
a. Открываете Notepad++
b. Search >n Find in files
c. В меню заполняете подобно тому, как на картинке (см. аттачмент).
Find what: ([\s\S]*?)(>>>>>Begin Spectral Data<<<<<\r\n)([\s\S]*?)(\r\n>>>>>End Spectral Data<<<<<)
Replace with: $3
Не забудьте указать папку, в которой у Вас файлы.
d. Нажимаете на Replace in files.

3. Сложный (условно). Оптимальный в целом, если файлов десятки тысяч. На Python (или любом скриптовом языке). Тоже могу сделать, если хотите. Но вот в сию секунду знаю только как всё сделать на одном файле (там настолько сурово просто, что плакать можно). А вот для многих файлов надо 5 минут посмотреть, как там лучше оформить. В принципе всё это несколько строчек.
Attachments
Notepad_Find_in_files_sm.jpg
Notepad_Find_in_files_sm.jpg (56.94 KiB) Viewed 2654 times
Last edited by IB on Sat Jun 16, 2018 1:04 pm, edited 3 times in total.
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby dr_Strangelove » Sat Jun 16, 2018 12:27 pm

Спасибо, 2 вариант выглядит привлекательно
Вот пример файла

Code: Select all
OOIBase32 Version 2.0.6.5 Data File
++++++++++++++++++++++++++++++++++++
Date: 01-01-1988, 02:17:43
User: Valued Ocean Optics Customer
Spectrometer Serial Number: US2J068
Spectrometer Channel: Master
Integration Time (msec): 500
Spectra Averaged: 10
Boxcar Smoothing: 0
Correct for Electrical Dark: Disabled
Time Normalized: Disabled
Dual-beam Reference: Disabled
Reference Channel: Master
Temperature: Not acquired
Spectrometer Type: S2000
ADC Type: ADC2000PCI
Number of Pixels in File: 2048
Graph Title:
>>>>>Begin Spectral Data<<<<<
189.78   0.000
190.14   0.000
190.51   -1.100
190.87   -1.900
191.24   -1.900
191.60   -3.200
191.97   -1.300
192.33   -1.100
192.70   -1.000
193.06   -1.400
193.43   -2.400
193.79   -2.300
194.16   -1.800
194.52   -2.800
194.89   -1.900
195.25   -3.000
195.62   -2.600
195.98   -1.700
196.34   -1.600
196.71   -1.500
197.07   -0.800
197.44   -2.100
197.80   -3.300
198.17   -3.900
198.53   -4.100
198.90   -3.200
199.26   -2.200
199.62   -2.100
199.99   -1.200
200.35   -1.100
200.72   -1.100
201.08   -1.000
201.45   -1.800
201.81   -1.200
202.17   0.200
202.54   -0.900
202.90   -1.800
203.27   -1.500
203.63   -1.700
203.99   -1.600
204.36   -2.300
204.72   -2.700
205.09   -1.300
205.45   -1.200
205.81   -2.400
206.18   -2.100
206.54   -2.200
206.90   -2.600
207.27   -2.400
207.63   -2.500
208.00   -2.100
208.36   -1.200
208.72   -1.300
209.09   -2.400
209.45   -3.100
209.81   -3.000
210.18   -3.000
210.54   -2.100
210.91   -0.500
211.27   -0.500
211.63   -0.800
212.00   -1.300
212.36   -1.500
212.72   -0.500
213.09   0.100
213.45   -0.500
213.81   -1.300
214.18   -1.700
214.54   -1.200
214.90   -0.500
215.27   -0.200
215.63   -0.700
215.99   -1.700
216.36   -2.100
216.72   -1.900
217.08   -1.500
217.44   -0.600
217.81   -0.800
218.17   -0.400
218.53   -0.800
218.90   -1.600
219.26   -1.900
219.62   -1.800
219.99   -1.600
220.35   -3.300
220.71   -3.100
221.07   -2.100
221.44   -2.400
221.80   -2.800
222.16   -2.900
222.53   -2.200
222.89   -0.100
223.25   -1.200
223.61   -1.000
223.98   -1.100
224.34   -1.300
224.70   -2.200
225.06   -2.500
225.43   -1.500
225.79   -0.700
226.15   -0.800
226.51   -1.500
226.88   -1.000
227.24   -0.400
227.60   -0.200
227.96   -0.400
228.33   -1.000
228.69   -0.800
229.05   -1.500
229.41   -1.700
229.77   -1.200
230.14   -1.800
230.50   -1.500
230.86   -1.700
231.22   -0.800
231.59   -0.800
231.95   -1.400
232.31   -1.100
232.67   -1.500
233.03   -1.700
233.40   -0.400
233.76   -0.400
234.12   -1.500
234.48   -1.100
234.84   -1.300
235.21   -1.100
235.57   -0.400
235.93   0.400
236.29   -0.400
236.65   -0.200
237.01   -0.800
237.38   -1.100
237.74   -0.600
238.10   -0.300
238.46   -0.900
238.82   -0.900
239.18   -0.900
239.55   -0.100
239.91   -0.600
240.27   -1.400
240.63   -0.600
240.99   -0.400
241.35   -1.800
241.71   -0.100
242.08   -0.300
242.44   -0.700
242.80   -0.100
243.16   0.300
243.52   0.500
243.88   0.800
244.24   0.100
244.60   0.500
244.97   0.400
245.33   2.100
245.69   2.400
246.05   3.500
246.41   3.600
246.77   4.100
247.13   4.800
247.49   5.300
247.85   6.100
248.22   5.300
248.58   4.200
248.94   5.200
249.30   6.300
249.66   7.900
250.02   10.900
250.38   14.100
250.74   18.600
251.10   21.900
251.46   26.400
251.82   36.400
252.18   61.400
252.54   130.000
252.90   601.500
253.27   1796.300
253.63   2926.200
253.99   3025.800
254.35   2019.800
254.71   917.800
255.07   377.000
255.43   158.300
255.79   72.900
256.15   39.200
256.51   26.000
256.87   19.200
257.23   14.500
257.59   13.000
257.95   12.200
258.31   10.500
258.67   7.700
259.03   6.100
259.39   6.900
259.75   7.100
260.11   6.500
260.47   7.000
260.83   6.400
261.19   5.800
261.55   5.100
261.91   5.200
262.27   5.100
262.63   6.900
262.99   7.100
263.35   7.200
263.71   9.200
264.07   9.800
264.43   10.300
264.79   13.200
265.15   17.000
265.51   18.400
265.87   17.600
266.23   15.400
266.59   13.400
266.95   13.900
267.31   14.500
267.67   14.500
268.03   14.200
268.39   14.900
268.74   17.200
269.10   17.900
269.46   18.700
269.82   20.000
270.18   21.100
270.54   20.600
270.90   21.100
271.26   22.300
271.62   22.500
271.98   22.500
272.34   22.100
272.70   23.700
273.06   25.600
273.41   27.300
273.77   27.100
274.13   25.400
274.49   25.600
274.85   28.400
275.21   29.800
275.57   30.600
275.93   29.400
276.29   30.700
276.65   30.300
277.00   29.900
277.36   30.400
277.72   29.900
278.08   33.500
278.44   34.900
278.80   32.700
279.16   30.700
279.51   32.500
279.87   33.300
280.23   34.100
280.59   34.500
280.95   34.600
281.31   33.100
281.67   32.700
282.02   31.700
282.38   32.400
282.74   32.700
283.10   31.200
283.46   32.100
283.82   30.300
284.17   30.800
284.53   30.300
284.89   29.100
285.25   29.600
285.61   28.800
285.97   27.700
286.32   26.100
286.68   26.000
287.04   26.700
287.40   25.900
287.76   25.200
288.11   25.400
288.47   26.800
288.83   33.200
289.19   38.100
289.54   39.000
289.90   35.600
290.26   30.400
290.62   25.900
290.98   24.300
291.33   24.100
291.69   24.200
292.05   22.300
292.41   22.200
292.76   22.600
293.12   22.600
293.48   21.400
293.84   19.800
294.19   19.700
294.55   19.900
294.91   19.800
295.27   21.300
295.62   24.700
295.98   51.000
296.34   106.500
296.70   149.100
297.05   146.700
297.41   103.100
297.77   58.300
298.12   32.800
298.48   21.200
298.84   17.500
299.20   15.900
299.55   15.900
299.91   14.000
300.27   14.000
300.62   15.300
300.98   15.300
301.34   24.800
301.70   47.900
302.05   74.000
302.41   79.700
302.77   63.300
303.12   41.000
303.48   24.300
303.84   14.600
304.19   10.500
304.55   9.100
304.91   8.800
305.26   9.300
305.62   7.700
305.98   7.400
306.33   7.900
306.69   7.400
307.05   7.300
307.40   7.600
307.76   7.100
308.11   6.500
308.47   8.400
308.83   9.700
309.18   8.200
309.54   8.400
309.90   8.300
310.25   9.400
310.61   12.100
310.96   15.600
311.32   26.300
311.68   88.400
312.03   256.800
312.39   535.000
312.74   830.200
313.10   936.200
313.46   803.500
313.81   520.400
314.17   271.500
314.52   123.600
314.88   55.000
315.24   26.300
315.59   15.900
315.95   10.700
316.30   9.300
316.66   5.700
317.01   5.800
317.37   5.900
317.73   5.800
318.08   5.100
318.44   4.100
318.79   4.000
319.15   4.600
319.50   4.500
319.86   4.400
320.21   2.300
320.57   2.600
320.93   3.000
321.28   3.600
321.64   3.900
321.99   4.200
322.35   4.000
322.70   2.300
323.06   2.400
323.41   3.900
323.77   1.600
324.12   1.200
324.48   1.600
324.83   2.800
325.19   2.700
325.54   2.200
325.90   2.800
326.25   2.800
326.61   3.000
326.96   2.500
327.32   2.300
327.67   2.200
328.03   2.800
328.38   3.000
328.74   3.000
329.09   4.200
329.44   3.500
329.80   2.700
330.15   2.700
330.51   2.900
330.86   2.300
331.22   4.000
331.57   4.000
331.93   4.100
332.28   3.100
332.64   3.900
332.99   10.400
333.34   27.600
333.70   53.900
334.05   75.400
334.41   76.200
334.76   58.300
335.12   39.100
335.47   22.100
335.82   11.100
336.18   7.900
336.53   6.800
336.89   4.700
337.24   5.000
337.59   3.800
337.95   3.900
338.30   5.300
338.66   4.600
339.01   4.700
339.36   4.000
339.72   2.900
340.07   3.500
340.42   4.000
340.78   4.000
341.13   4.200
341.49   5.000
341.84   6.400
342.19   6.300
342.55   5.800
342.90   5.100
343.25   6.200
343.61   5.700
343.96   5.700
344.31   6.000
344.67   6.300
345.02   5.000
345.37   4.300
345.73   5.900
346.08   7.200
346.43   7.700
346.79   6.900
347.14   6.100
347.49   6.800
347.85   7.400
348.20   6.600
348.55   6.300
348.90   5.400
349.26   5.900
349.61   7.500
349.96   7.000
350.32   7.300
350.67   8.500
351.02   8.400
351.38   9.000
351.73   9.000
352.08   8.700
352.43   7.700
352.79   6.900
353.14   7.800
353.49   8.000
353.84   9.200
354.20   8.800
354.55   9.600
354.90   8.400
355.25   9.200
355.61   9.800
355.96   9.500
356.31   11.200
356.66   10.700
357.02   9.900
357.37   10.200
357.72   10.500
358.07   12.300
358.43   13.000
358.78   14.500
359.13   15.300
359.48   16.000
359.83   15.300
360.19   14.600
360.54   13.100
360.89   12.400
361.24   15.300
361.59   18.500
361.95   18.000
362.30   19.700
362.65   21.200
363.00   25.100
363.35   34.400
363.70   93.500
364.06   374.000
364.41   929.200
364.76   1471.600
365.11   1728.900
365.46   1645.600
365.81   1391.300
366.17   1063.500
366.52   723.600
366.87   445.800
367.22   263.200
367.57   151.300
367.92   83.600
368.27   47.500
368.63   31.900
368.98   24.900
369.33   21.800
369.68   20.900
370.03   21.200
370.38   19.600
370.73   19.400
371.08   20.000
371.43   20.500
371.79   19.000
372.14   18.600
372.49   19.400
372.84   18.600
373.19   18.700
373.54   19.800
373.89   19.000
374.24   20.300
374.59   20.300
374.94   21.100
375.29   20.000
375.65   19.000
376.00   19.500
376.35   18.600
376.70   18.400
377.05   20.000
377.40   19.800
377.75   18.900
378.10   21.000
378.45   20.200
378.80   19.100
379.15   18.800
379.50   19.200
379.85   19.300
380.20   19.800
380.55   18.100
380.90   19.100
381.25   19.200
381.60   20.000
381.95   20.900
382.30   19.400
382.65   21.300
383.00   20.900
383.35   19.500
383.70   20.000
384.05   20.200
384.40   19.600
384.75   20.700
385.10   19.500
385.45   20.400
385.80   20.200
386.15   19.200
386.50   18.800
386.85   20.700
387.20   19.400
387.55   19.200
387.90   20.000
388.25   19.400
388.60   19.200
388.95   18.400
389.30   18.200
389.65   19.000
390.00   19.600
390.35   19.400
390.70   18.600
391.04   18.800
391.39   19.700
391.74   17.300
392.09   16.600
392.44   15.400
392.79   14.200
393.14   14.700
393.49   15.900
393.84   16.900
394.19   16.400
394.54   16.300
394.88   16.900
395.23   15.400
395.58   14.600
395.93   15.600
396.28   15.500
396.63   14.000
396.98   13.500
397.33   14.200
397.67   15.600
398.02   15.300
398.37   14.000
398.72   13.100
399.07   13.900
399.42   13.800
399.77   12.700
400.11   12.900
400.46   12.900
400.81   11.800
401.16   11.500
401.51   11.900
401.86   13.600
402.21   13.900
402.55   13.500
402.90   14.800
403.25   22.800
403.60   58.900
403.95   133.400
404.29   200.500
404.64   222.800
404.99   193.300
405.34   148.600
405.69   106.300
406.03   71.000
406.38   44.000
406.73   28.800
407.08   22.300
407.43   20.600
407.77   20.100
408.12   16.800
408.47   15.600
408.82   14.200
409.16   12.600
409.51   12.100
409.86   10.900
410.21   8.700
410.55   9.500
410.90   10.700
411.25   9.800
411.60   9.700
411.94   9.200
412.29   9.600
412.64   10.300
412.99   8.700
413.33   8.500
413.68   10.500
414.03   10.600
414.37   10.100
414.72   8.800
415.07   8.700
415.42   8.100
415.76   6.800
416.11   6.300
416.46   6.300
416.80   6.500
417.15   7.700
417.50   8.100
417.84   8.300
418.19   8.100
418.54   8.100
418.88   6.900
419.23   6.300
419.58   7.400
419.92   8.500
420.27   8.800
420.62   8.300
420.96   7.500
421.31   7.600
421.66   8.300
422.00   7.500
422.35   7.000
422.70   8.900
423.04   8.100
423.39   6.700
423.73   6.700
424.08   6.000
424.43   7.200
424.77   6.800
425.12   6.800
425.47   8.100
425.81   7.900
426.16   7.000
426.50   6.800
426.85   6.300
427.20   7.500
427.54   6.900
427.89   6.500
428.23   6.600
428.58   7.700
428.92   6.300
429.27   6.800
429.62   6.600
429.96   6.600
430.31   8.500
430.65   8.200
431.00   7.700
431.34   6.700
431.69   6.400
432.03   6.600
432.38   8.700
432.73   7.700
433.07   7.300
433.42   6.200
433.76   5.200
434.11   7.100
434.45   7.900
434.80   10.000
435.14   12.300
435.49   14.300
435.83   14.900
436.18   14.400
436.52   12.800
436.87   9.800
437.21   7.500
437.56   6.200
437.90   8.600
438.25   7.800
438.59   8.400
438.94   7.200
439.28   8.300
439.63   7.100
439.97   7.200
440.31   7.000
440.66   8.600
441.00   8.600
441.35   7.500
441.69   7.200
442.04   7.100
442.38   7.000
442.73   7.500
443.07   8.000
443.42   7.500
443.76   6.500
444.10   7.100
444.45   8.900
444.79   7.400
445.14   6.500
445.48   6.400
445.82   6.600
446.17   6.500
446.51   7.600
446.86   6.900
447.20   5.500
447.54   5.900
447.89   6.200
448.23   6.600
448.58   8.000
448.92   8.500
449.26   8.700
449.61   7.800
449.95   8.700
450.29   8.500
450.64   7.200
450.98   7.800
451.33   7.200
451.67   6.400
452.01   9.000
452.36   7.900
452.70   7.800
453.04   8.300
453.39   8.500
453.73   8.200
454.07   8.000
454.42   8.000
454.76   8.400
455.10   8.000
455.45   7.200
455.79   6.500
456.13   7.000
456.47   8.000
456.82   8.100
457.16   7.800
457.50   7.200
457.85   9.100
458.19   9.100
458.53   9.800
458.87   9.100
459.22   7.000
459.56   7.100
459.90   6.300
460.25   5.700
460.59   8.000
460.93   8.100
461.27   7.800
461.62   6.600
461.96   5.800
462.30   6.600
462.64   7.300
462.99   5.400
463.33   5.000
463.67   5.400
464.01   6.900
464.35   7.000
464.70   6.800
465.04   5.800
465.38   6.200
465.72   5.900
466.06   7.400
466.41   8.300
466.75   8.100
467.09   8.300
467.43   7.300
467.77   7.400
468.12   8.100
468.46   7.800
468.80   7.400
469.14   7.400
469.48   7.700
469.83   8.000
470.17   7.500
470.51   7.100
470.85   6.400
471.19   7.100
471.53   7.600
471.87   7.800
472.22   6.900
472.56   7.600
472.90   7.300
473.24   8.000
473.58   7.000
473.92   6.700
474.26   6.700
474.60   6.400
474.95   7.000
475.29   7.200
475.63   7.000
475.97   8.100
476.31   6.200
476.65   7.100
476.99   8.300
477.33   8.100
477.67   7.400
478.01   6.100
478.36   6.900
478.70   8.500
479.04   9.100
479.38   7.900
479.72   7.300
480.06   6.800
480.40   6.300
480.74   6.600
481.08   7.600
481.42   7.100
481.76   8.800
482.10   10.700
482.44   10.800
482.78   10.200
483.12   12.000
483.46   12.600
483.80   13.000
484.14   13.400
484.48   14.000
484.82   18.100
485.16   20.300
485.50   20.900
485.84   20.500
486.18   23.300
486.52   26.300
486.86   29.500
487.20   31.000
487.54   33.100
487.88   35.300
488.22   37.100
488.56   37.500
488.90   39.000
489.24   40.000
489.58   40.800
489.92   40.900
490.26   40.800
490.60   41.500
490.94   39.600
491.28   37.400
491.62   36.700
491.96   34.900
492.30   35.000
492.64   32.000
492.98   30.200
493.31   30.400
493.65   28.200
493.99   27.900
494.33   25.800
494.67   24.700
495.01   23.300
495.35   21.100
495.69   20.000
496.03   19.700
496.37   18.800
496.70   18.000
497.04   16.000
497.38   15.700
497.72   14.600
498.06   13.800
498.40   13.400
498.74   13.300
499.08   10.800
499.41   10.200
499.75   10.200
500.09   9.000
500.43   9.900
500.77   9.700
501.11   7.800
501.44   6.500
501.78   7.000
502.12   6.100
502.46   6.100
502.80   5.700
503.14   5.600
503.47   5.200
503.81   4.800
504.15   5.700
504.49   5.400
504.83   5.400
505.16   6.400
505.50   5.400
505.84   4.400
506.18   5.400
506.52   5.400
506.85   3.600
507.19   3.900
507.53   3.700
507.87   3.900
508.20   3.300
508.54   3.100
508.88   2.800
509.22   3.400
509.55   3.500
509.89   4.500
510.23   5.000
510.57   3.300
510.90   4.200
511.24   2.600
511.58   1.700
511.91   1.800
512.25   3.700
512.59   3.900
512.93   4.100
513.26   2.500
513.60   1.900
513.94   3.500
514.27   4.800
514.61   4.100
514.95   4.800
515.28   3.000
515.62   3.400
515.96   2.600
516.30   2.800
516.63   1.900
516.97   1.100
517.31   1.000
517.64   1.500
517.98   1.400
518.31   1.200
518.65   0.200
518.99   0.700
519.32   1.600
519.66   2.000
520.00   11.600
520.33   26.500
520.67   21.500
521.01   11.700
521.34   6.400
521.68   2.300
522.01   1.600
522.35   1.800
522.69   1.000
523.02   0.700
523.36   1.300
523.69   0.300
524.03   0.700
524.37   -0.100
524.70   0.900
525.04   1.500
525.37   1.600
525.71   3.200
526.04   3.300
526.38   2.800
526.72   2.000
527.05   0.800
527.39   0.700
527.72   0.600
528.06   0.400
528.39   1.100
528.73   0.800
529.06   1.000
529.40   1.000
529.73   0.600
530.07   0.600
530.40   0.700
530.74   1.700
531.07   2.200
531.41   2.300
531.74   2.500
532.08   1.900
532.41   2.300
532.75   1.700
533.08   1.100
533.42   2.500
533.75   3.200
534.09   3.400
534.42   3.000
534.76   2.200
535.09   3.300
535.43   2.500
535.76   2.600
536.10   2.400
536.43   3.300
536.76   4.100
537.10   3.500
537.43   5.400
537.77   6.600
538.10   7.500
538.44   9.300
538.77   11.100
539.10   14.500
539.44   16.000
539.77   21.200
540.11   27.000
540.44   34.700
540.77   42.500
541.11   50.700
541.44   59.700
541.78   68.400
542.11   76.000
542.44   82.500
542.78   88.900
543.11   92.600
543.44   94.900
543.78   98.400
544.11   98.100
544.45   96.500
544.78   95.900
545.11   96.100
545.45   95.500
545.78   93.300
546.11   90.300
546.45   87.800
546.78   83.800
547.11   80.700
547.45   76.500
547.78   71.900
548.11   68.000
548.45   64.700
548.78   60.100
549.11   57.000
549.44   52.400
549.78   46.900
550.11   41.800
550.44   37.900
550.78   34.400
551.11   31.400
551.44   28.400
551.77   24.000
552.11   22.600
552.44   21.500
552.77   18.500
553.10   15.300
553.44   12.500
553.77   10.600
554.10   10.000
554.43   8.300
554.77   7.100
555.10   5.800
555.43   4.100
555.76   3.200
556.10   3.800
556.43   3.700
556.76   3.900
557.09   3.000
557.42   2.000
557.76   1.800
558.09   2.700
558.42   1.700
558.75   1.800
559.08   1.400
559.42   1.900
559.75   1.100
560.08   0.300
560.41   0.500
560.74   0.900
561.07   1.200
561.41   0.500
561.74   -0.900
562.07   0.600
562.40   1.500
562.73   0.900
563.06   1.000
563.39   1.000
563.73   0.600
564.06   -0.100
564.39   0.400
564.72   -0.600
565.05   0.200
565.38   0.700
565.71   0.900
566.04   0.400
566.37   -0.300
566.71   -1.300
567.04   -1.600
567.37   -2.000
567.70   -1.400
568.03   -1.400
568.36   -0.900
568.69   0.300
569.02   0.100
569.35   -0.700
569.68   -0.300
570.01   -1.200
570.34   -1.300
570.67   -0.600
571.00   0.600
571.33   0.900
571.66   0.100
572.00   -0.200
572.33   -0.800
572.66   -0.500
572.99   -0.500
573.32   1.400
573.65   1.900
573.98   1.000
574.31   0.700
574.64   0.600
574.97   0.100
575.30   1.000
575.63   1.400
575.96   1.700
576.29   2.900
576.62   3.200
576.95   4.000
577.28   3.200
577.60   3.200
577.93   4.900
578.26   8.500
578.59   10.700
578.92   13.400
579.25   13.100
579.58   11.500
579.91   12.100
580.24   10.200
580.57   9.900
580.90   9.300
581.23   12.100
581.56   13.000
581.89   13.400
582.22   15.800
582.54   16.500
582.87   18.200
583.20   18.500
583.53   18.300
583.86   20.600
584.19   23.400
584.52   23.700
584.85   24.800
585.18   26.700
585.50   27.700
585.83   31.100
586.16   33.600
586.49   34.500
586.82   36.100
587.15   38.500
587.48   40.900
587.80   44.700
588.13   46.800
588.46   47.800
588.79   50.000
589.12   52.700
589.45   55.200
589.77   56.500
590.10   54.900
590.43   56.400
590.76   57.600
591.09   59.000
591.41   58.600
591.74   57.800
592.07   57.200
592.40   57.600
592.73   56.100
593.05   54.000
593.38   51.000
593.71   48.700
594.04   45.800
594.36   44.800
594.69   44.200
595.02   43.200
595.35   40.600
595.67   40.200
596.00   41.000
596.33   41.100
596.66   38.600
596.98   35.300
597.31   32.700
597.64   30.000
597.96   26.100
598.29   22.600
598.62   21.800
598.95   20.600
599.27   17.600
599.60   15.100
599.93   12.900
600.25   11.500
600.58   9.600
600.91   8.400
601.23   7.900
601.56   7.800
601.89   7.000
602.21   6.700
602.54   6.000
602.87   5.700
603.19   6.100
603.52   5.800
603.85   6.700
604.17   7.000
604.50   6.200
604.83   6.200
605.15   6.400
605.48   5.600
605.80   6.300
606.13   6.000
606.46   6.500
606.78   9.200
607.11   10.000
607.43   10.700
607.76   13.100
608.09   14.600
608.41   17.000
608.74   20.800
609.06   25.600
609.39   30.700
609.71   36.100
610.04   44.100
610.37   54.300
610.69   67.800
611.02   84.700
611.34   103.200
611.67   119.700
611.99   136.400
612.32   150.200
612.64   160.200
612.97   169.900
613.29   178.700
613.62   183.400
613.94   185.500
614.27   188.000
614.59   188.500
614.92   188.600
615.24   188.700
615.57   186.900
615.89   185.600
616.22   183.100
616.54   182.500
616.87   181.400
617.19   179.400
617.52   176.000
617.84   172.500
618.17   168.900
618.49   165.400
618.82   161.600
619.14   157.000
619.47   152.600
619.79   148.200
620.11   143.100
620.44   137.900
620.76   132.600
621.09   127.200
621.41   121.100
621.74   114.000
622.06   105.700
622.38   98.400
622.71   91.300
623.03   84.300
623.36   77.600
623.68   72.400
624.00   65.200
624.33   59.000
624.65   52.700
624.97   47.800
625.30   42.000
625.62   35.200
625.95   31.500
626.27   28.500
626.59   25.000
626.92   22.400
627.24   20.200
627.56   18.100
627.89   14.500
628.21   12.700
628.53   13.200
628.86   11.700
629.18   9.800
629.50   9.300
629.83   8.200
630.15   8.100
630.47   7.300
630.79   7.000
631.12   6.200
631.44   6.500
631.76   5.400
632.09   4.400
632.41   4.400
632.73   3.300
633.05   3.100
633.38   2.600
633.70   2.300
634.02   2.600
634.34   2.900
634.67   2.300
634.99   1.700
635.31   1.600
635.63   1.900
635.96   2.100
636.28   2.200
636.60   1.700
636.92   1.100
637.25   2.700
637.57   1.700
637.89   0.400
638.21   -0.500
638.53   -1.700
638.86   0.000
639.18   0.900
639.50   1.500
639.82   2.200
640.14   0.900
640.46   1.100
640.79   0.400
641.11   0.600
641.43   1.100
641.75   1.100
642.07   1.000
642.39   0.200
642.71   -0.100
643.04   1.500
643.36   1.700
643.68   1.300
644.00   0.800
644.32   1.000
644.64   1.100
644.96   0.500
645.28   0.400
645.61   1.900
645.93   1.300
646.25   -0.200
646.57   0.100
646.89   1.400
647.21   2.200
647.53   1.500
647.85   1.500
648.17   2.200
648.49   2.200
648.81   3.000
649.13   2.900
649.45   2.200
649.77   3.400
650.10   5.600
650.42   6.400
650.74   6.100
651.06   4.600
651.38   3.800
651.70   4.000
652.02   4.700
652.34   4.100
652.66   3.500
652.98   4.200
653.30   3.500
653.62   5.200
653.94   5.600
654.26   4.800
654.58   4.700
654.90   3.900
655.22   4.600
655.54   5.100
655.86   4.700
656.18   1.600
656.49   0.700
656.81   0.100
657.13   1.400
657.45   1.100
657.77   1.100
658.09   1.300
658.41   1.100
658.73   0.600
659.05   0.600
659.37   -0.200
659.69   0.300
660.01   -0.800
660.33   -0.700
660.64   -1.300
660.96   -0.400
661.28   0.300
661.60   -0.100
661.92   -0.800
662.24   -0.100
662.56   -0.300
662.88   0.200
663.20   -0.200
663.51   -0.700
663.83   -0.200
664.15   0.200
664.47   1.000
664.79   1.700
665.11   0.300
665.42   0.300
665.74   -1.000
666.06   -1.000
666.38   -0.500
666.70   0.800
667.02   1.100
667.33   -0.500
667.65   -0.900
667.97   -0.700
668.29   -0.200
668.61   -0.300
668.92   -1.000
669.24   -1.300
669.56   -0.400
669.88   0.800
670.19   0.100
670.51   -0.600
670.83   0.300
671.15   0.800
671.46   0.100
671.78   -0.400
672.10   0.800
672.42   1.100
672.73   1.200
673.05   1.000
673.37   0.500
673.69   2.700
674.00   1.400
674.32   0.300
674.64   0.000
674.95   -0.900
675.27   -1.000
675.59   0.000
675.91   -1.400
676.22   0.500
676.54   1.000
676.86   0.300
677.17   -0.500
677.49   0.300
677.81   0.600
678.12   0.800
678.44   1.100
678.76   1.000
679.07   0.700
679.39   1.100
679.70   0.300
680.02   -0.700
680.34   -0.500
680.65   -0.100
680.97   -0.300
681.29   0.100
681.60   0.200
681.92   0.500
682.23   1.900
682.55   2.500
682.87   2.500
683.18   2.300
683.50   1.900
683.81   2.200
684.13   3.300
684.44   3.700
684.76   4.600
685.08   5.800
685.39   6.100
685.71   6.600
686.02   6.200
686.34   6.900
686.65   8.000
686.97   9.100
687.28   8.700
687.60   10.500
687.91   11.200
688.23   10.100
688.54   10.100
688.86   10.800
689.17   12.700
689.49   13.600
689.80   13.700
690.12   15.200
690.43   16.100
690.75   16.500
691.06   16.300
691.38   16.400
691.69   15.900
692.01   16.100
692.32   16.800
692.64   17.200
692.95   17.300
693.27   18.000
693.58   18.000
693.89   17.900
694.21   18.000
694.52   18.800
694.84   19.800
695.15   21.100
695.47   21.800
695.78   23.300
696.09   24.500
696.41   25.700
696.72   25.500
697.04   25.500
697.35   26.500
697.66   26.300
697.98   26.600
698.29   26.200
698.60   26.600
698.92   25.500
699.23   24.500
699.54   25.400
699.86   25.400
700.17   24.200
700.48   23.400
700.80   21.700
701.11   21.100
701.42   21.400
701.74   20.700
702.05   20.400
702.36   18.900
702.68   17.600
702.99   17.100
703.30   16.000
703.62   14.400
703.93   12.400
704.24   11.500
704.56   10.600
704.87   9.500
705.18   7.600
705.49   8.600
705.81   8.200
706.12   6.800
706.43   7.500
706.74   8.400
707.06   6.300
707.37   5.100
707.68   3.900
707.99   2.900
708.31   3.000
708.62   3.400
708.93   4.000
709.24   2.900
709.55   2.100
709.87   1.200
710.18   1.000
710.49   0.800
710.80   0.700
711.11   0.800
711.43   0.900
711.74   0.800
712.05   -0.500
712.36   -0.500
712.67   -0.900
712.98   -1.300
713.30   -0.800
713.61   -0.200
713.92   -0.700
714.23   -0.100
714.54   -0.200
714.85   0.600
715.16   0.700
715.47   0.100
715.79   0.200
716.10   -0.300
716.41   0.100
716.72   -1.400
717.03   -0.700
717.34   0.200
717.65   -0.900
717.96   -1.800
718.27   -1.700
718.58   -0.800
718.89   -1.400
719.21   -0.700
719.52   -0.100
719.83   -1.200
720.14   -0.400
720.45   -0.600
720.76   -0.300
721.07   0.700
721.38   -0.300
721.69   -0.300
722.00   0.500
722.31   -0.500
722.62   -1.800
722.93   -1.600
723.24   -1.000
723.55   -1.300
723.86   -0.300
724.17   -0.600
724.48   -0.700
724.79   -1.400
725.10   -2.000
725.41   -1.300
725.72   -2.900
726.03   -2.900
726.34   -0.500
726.65   -0.200
726.96   0.700
727.27   0.400
727.58   1.500
727.89   0.200
728.19   -1.000
728.50   0.000
728.81   0.600
729.12   0.800
729.43   0.600
729.74   -1.200
730.05   -1.700
730.36   -0.700
730.67   -1.000
730.98   -0.800
731.28   -0.600
731.59   -0.800
731.90   -0.500
732.21   0.900
732.52   0.500
732.83   -0.600
733.14   -2.700
733.45   -2.300
733.75   -0.200
734.06   0.400
734.37   0.000
734.68   0.600
734.99   0.000
735.30   -0.100
735.60   -0.300
735.91   -0.600
736.22   -0.500
736.53   -0.300
736.84   -0.200
737.14   0.200
737.45   2.500
737.76   2.900
738.07   4.900
738.38   6.200
738.68   6.100
738.99   6.000
739.30   3.800
739.61   3.100
739.91   2.000
740.22   0.200
740.53   -0.700
740.84   -0.500
741.14   -0.700
741.45   -0.400
741.76   -1.000
742.06   -0.600
742.37   -1.000
742.68   -0.900
742.99   -1.100
743.29   -0.700
743.60   -1.400
743.91   -1.800
744.21   -2.000
744.52   -2.400
744.83   -1.200
745.13   -0.600
745.44   0.000
745.75   5.200
746.05   13.300
746.36   4.500
746.67   0.700
746.97   -0.600
747.28   -0.800
747.59   -1.000
747.89   -0.900
748.20   -1.700
748.51   -2.600
748.81   -1.900
749.12   -0.500
749.42   0.200
749.73   1.000
750.04   2.600
750.34   3.800
750.65   5.600
750.95   5.600
751.26   6.500
751.56   6.200
751.87   5.100
752.18   4.800
752.48   4.300
752.79   2.500
753.09   1.900
753.40   0.000
753.70   -0.900
754.01   -0.700
754.31   -1.200
754.62   -2.200
754.92   -1.000
755.23   -0.300
755.53   -0.300
755.84   -1.500
756.14   -1.400
756.45   -1.600
756.75   -1.500
757.06   -0.900
757.36   -0.800
757.67   0.000
757.97   -1.500
758.28   -1.800
758.58   -1.500
758.89   0.200
759.19   0.900
759.50   0.300
759.80   1.400
760.11   10.500
760.41   30.500
760.71   53.600
761.02   71.400
761.32   73.000
761.63   63.200
761.93   49.900
762.23   38.400
762.54   32.000
762.84   27.000
763.15   24.600
763.45   25.900
763.75   23.700
764.06   16.800
764.36   12.600
764.67   9.700
764.97   7.200
765.27   5.600
765.58   3.400
765.88   1.200
766.18   -1.400
766.49   -2.400
766.79   -1.500
767.09   -2.200
767.40   -0.500
767.70   -0.500
768.00   -1.200
768.31   -2.800
768.61   -2.200
768.91   -1.100
769.21   -1.700
769.52   -1.800
769.82   -2.000
770.12   -1.000
770.43   -1.300
770.73   -1.400
771.03   -0.300
771.33   -0.900
771.64   0.200
771.94   1.200
772.24   3.300
772.54   3.300
772.85   4.500
773.15   4.500
773.45   1.500
773.75   -1.100
774.06   0.300
774.36   0.000
774.66   -0.400
774.96   -1.200
775.26   -0.900
775.57   -1.600
775.87   -2.200
776.17   -2.900
776.47   -2.900
776.77   -3.200
777.07   -2.100
777.38   -0.500
777.68   -1.300
777.98   -1.800
778.28   -2.200
778.58   -2.300
778.88   -1.100
779.18   -1.400
779.49   -1.500
779.79   -1.100
780.09   -0.600
780.39   -1.300
780.69   -0.800
780.99   -1.900
781.29   -2.400
781.59   -1.900
781.89   -2.100
782.19   -1.600
782.50   -1.900
782.80   -2.800
783.10   -2.100
783.40   -2.200
783.70   -0.800
784.00   0.400
784.30   -0.100
784.60   0.100
784.90   -0.800
785.20   -1.600
785.50   -1.600
785.80   -1.200
786.10   -0.500
786.40   -0.800
786.70   -2.500
787.00   -1.800
787.30   -1.000
787.60   -1.600
787.90   -0.200
788.20   -1.100
788.50   -2.400
788.80   -2.000
789.10   -2.600
789.40   -1.800
789.70   -1.500
790.00   -1.500
790.30   -2.100
790.60   -1.100
790.90   -2.500
791.20   -3.100
791.50   -3.300
791.80   -3.600
792.09   -3.200
792.39   -2.200
792.69   -1.400
792.99   -0.600
793.29   -1.100
793.59   -1.800
793.89   -2.700
794.19   -1.000
794.49   1.700
794.79   1.900
795.08   1.500
795.38   0.300
795.68   -1.200
795.98   -1.600
796.28   -0.500
796.58   -0.500
796.88   -0.200
797.17   -0.300
797.47   -1.300
797.77   0.100
798.07   -0.400
798.37   -1.300
798.66   -1.000
798.96   -1.700
799.26   -3.300
799.56   -2.600
799.86   -1.600
800.15   -0.300
800.45   0.300
800.75   0.500
801.05   -0.100
801.35   0.000
801.64   -0.700
801.94   -0.100
802.24   0.700
802.54   0.500
802.83   -0.800
803.13   -1.500
803.43   -0.800
803.73   -1.200
804.02   -1.500
804.32   -1.500
804.62   -1.400
804.91   -1.200
805.21   -0.400
805.51   -0.500
805.80   -0.700
806.10   -0.100
806.40   -0.500
806.70   -0.300
806.99   -1.600
807.29   -2.400
807.59   -1.600
807.88   -2.100
808.18   -2.200
808.47   -2.700
808.77   -3.000
809.07   -2.300
809.36   -0.900
809.66   -0.200
809.96   1.100
810.25   1.600
810.55   2.700
810.84   4.200
811.14   6.800
811.44   8.400
811.73   7.600
812.03   5.000
812.32   2.800
812.62   2.000
812.92   0.900
813.21   0.900
813.51   1.300
813.80   0.100
814.10   -0.700
814.39   -1.300
814.69   -2.200
814.98   -2.200
815.28   -2.600
815.57   -2.300
815.87   -1.800
816.16   -0.800
816.46   -0.900
816.76   -1.100
817.05   -1.100
817.34   -1.300
817.64   -1.000
817.93   -1.900
818.23   -1.200
818.52   -1.100
818.82   -1.700
819.11   -1.300
819.41   -0.900
819.70   -1.000
820.00   -1.000
820.29   -1.800
820.59   -1.300
820.88   -2.300
821.17   -2.300
821.47   -1.300
821.76   -1.300
822.06   -1.300
822.35   -0.200
822.65   -0.500
822.94   -0.300
823.23   -0.600
823.53   -1.600
823.82   -2.900
824.11   -3.000
824.41   -3.200
824.70   -2.700
825.00   -2.000
825.29   -1.600
825.58   -1.700
825.88   -0.700
826.17   -0.200
826.46   0.100
826.76   -0.900
827.05   0.100
827.34   -0.300
827.64   -1.900
827.93   -1.500
828.22   -1.100
828.51   -1.400
828.81   -1.000
829.10   -1.100
829.39   -0.800
829.69   -1.000
829.98   -0.600
830.27   -1.000
830.56   -0.800
830.86   -0.100
831.15   -1.200
831.44   -2.200
831.73   -2.600
832.03   -2.300
832.32   -2.200
832.61   -1.700
832.90   -0.900
833.20   -0.800
833.49   -2.000
833.78   -1.700
834.07   -1.500
834.36   -1.500
834.66   -0.800
834.95   -0.300
835.24   -0.200
835.53   -1.700
835.82   -2.900
836.11   -3.300
836.41   -2.100
836.70   -1.200
836.99   -0.600
837.28   -0.600
837.57   -1.700
837.86   -1.800
838.15   -2.000
838.45   -2.300
838.74   -1.700
839.03   -2.000
839.32   -2.200
839.61   -3.500
839.90   -2.300
840.19   -0.800
840.48   -1.100
840.77   -1.900
841.06   -2.500
841.36   -2.200
841.65   -0.100
841.94   -0.600
842.23   -1.100
842.52   -0.100
842.81   0.300
843.10   0.400
843.39   -0.500
843.68   -0.500
843.97   -0.300
844.26   -0.700
844.55   -1.900
844.84   -2.300
845.13   -2.700
845.42   -2.500
845.71   -2.500
846.00   -3.000
846.29   -2.900
846.58   -1.600
846.87   -5.300
847.16   -12.400
847.45   -6.800
847.74   -3.000
848.03   -1.400
848.32   -1.900
848.61   -2.100
848.90   -2.900
849.19   -2.000
849.47   -0.900
849.76   -1.200
850.05   -0.500
850.34   -1.100
850.63   -3.100
850.92   -2.900
851.21   -3.100
851.50   -2.300
851.79   -1.100
852.08   0.000
852.36   0.500
852.65   1.800
852.94   0.400
853.23   -1.400
853.52   -2.100
853.81   -2.200
854.10   -1.000
854.38   -0.600
854.67   -0.700
854.96   -1.500
855.25   -1.600
855.54   -3.000
855.83   -2.100
856.11   -2.000
856.40   -0.700
856.69   -0.700
856.98   -2.000
857.26   -2.600
857.55   -2.200
857.84   -1.900
858.13   -1.700
858.42   -2.200
858.70   -2.100
858.99   -1.900
859.28   -0.700
859.57   -0.700
859.85   -2.900
860.14   -2.500
860.43   -1.600
860.71   -1.600
861.00   -2.300
861.29   -1.800
861.58   -1.700
861.86   -1.400
862.15   -1.000
862.44   -2.200
862.72   -3.100
863.01   -3.100
863.30   -3.100
863.58   -2.300
863.87   -1.100
864.16   -1.800
864.44   -0.500
864.73   -1.600
865.02   -2.300
865.30   -2.900
865.59   -2.300
865.88   -0.900
866.16   -1.000
866.45   -1.800
>>>>>End Spectral Data<<<<<
Last edited by Blackguard on Sat Jun 16, 2018 2:09 pm, edited 1 time in total.
Reason: Сложил простынь
Дух свободы… К перестройке // ‎ Вся страна стремится, // Полицейский в грязной Мойке //‎ Хочет утопиться.
Не топись, охранный воин,— // ‎ Воля улыбнётся! // Полицейский! будь покоен — // ‎ Старый гнёт вернется
User avatar
dr_Strangelove
 
Posts: 652
Joined: Mon Oct 18, 2004 9:17 pm
Location: Химфак-ФНМ-Химфак+ФИАН

Re: Пакетная обработка файлов

Postby IB » Sat Jun 16, 2018 12:36 pm

См. вверху, я ввёл, всё что нужно. Я прошу прощения, что затребовал лишнюю информацию - Вы уже всё дали вначале (если можно, уберите пожалуйста этот длинный файл под-cut). Я протестировал на одном файле, но всё должно работать. Сейчас быстренько (уж насколько могу), попробую как будет выглядеть на нескольких.

UPD. Всё работает, только первая и последняя строка пустые. Сейчас посмотрю, отчего это вдруг.
UPD2. Моя помарка в Regex - поправил, там же, в первом сообщении. Теперь всё работает как надо (хотя в Regex код топорен, ака инструмент у австралопитека. Ну и фиг с ним. Вам же ехать, а не шашечки).

P.S. Собственно даже открывать файлы не нужно, в принципе это работает тоже на практически неограниченном количестве файлов.
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby IB » Sat Jun 16, 2018 1:30 pm

Как успехи ?
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby dr_Strangelove » Sat Jun 16, 2018 1:38 pm

Огромное спасибо, я разобрался, очень классно!
Дух свободы… К перестройке // ‎ Вся страна стремится, // Полицейский в грязной Мойке //‎ Хочет утопиться.
Не топись, охранный воин,— // ‎ Воля улыбнётся! // Полицейский! будь покоен — // ‎ Старый гнёт вернется
User avatar
dr_Strangelove
 
Posts: 652
Joined: Mon Oct 18, 2004 9:17 pm
Location: Химфак-ФНМ-Химфак+ФИАН

Re: Пакетная обработка файлов

Postby IB » Sat Jun 16, 2018 1:44 pm

/Сратько mode on
Ну тогда приводите на форум людей :)))
/Сратько mode off
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby IB » Sat Jun 16, 2018 4:30 pm

Мне тут стало интересно, как это сделать на Питоне с пакетной обработкой. По сути нужно было подчитать glob.glob.

Короче наваял для Доктора на Python 2.7, чтобы он не говорил, что здесь недружелюбные звери бродят (скрипт от человека, который не умеет программировать - т.е. один лысый дарит другому лысому расчёску. Зато работает. С другой стороны кто-то, скажем ИСН, будет крутить носом и восклицать "O tempora, o mores" :) ).

How to: нужно запустить скрипт - python script_name.py, ввести название папки по просьбе, и все найденные file.txt с интерпретируемой структурой, содержащей ">>>>Begin..." и ">>>>>End..." после обрезания ненужных фрагментов будут записаны в виде file_.txt в ту же папку (если структура не найдена, то, соответственно, ничего не происходит; если хочется других расширений, то нужно подправить fileExtension и newFileExtension):


Code: Select all
import glob
import sys

# Script for cutting out the "C" text fragment from
# an "ABCDE" sequence with known B and D

# Variable definitions
# fragments ::= a termporary string list
# piece ::= a temporary string
# fileNameFull ::= full file name

fragment_B = ">>>>>Begin Spectral Data<<<<<"
fragment_D = ">>>>>End Spectral Data<<<<<"
fragment_C = "Nothing was found"
global fragment_E
fragment_E = "" # A residual fragment of the ABCDE text, for reuse
fileExtension = "txt"
newFileExtension = "txt"
newFileSuffix_ = "_"

folderPath = raw_input("Input path > ")
print "Current path: %s " % folderPath
if folderPath == "":
    print "You did not input anything. The program terminates."
    sys.exit()

listFiles = glob.glob(str(folderPath + '*.' + fileExtension))
print "The files found in the folder are: \n %s" "\n" % listFiles

def ExtractFileName(fileNameList):
    fragments = fileNameList.split('\\')
    fileNameWithExtension = fragments.pop(-1)
    fragments = fileNameWithExtension.split('.')
    fragments.pop(-1)
    fileName = '.'.join(fragments)
    return fileName

def Extract_And_Save(fileName, newFileSuffix, frag_1, frag_2):
    with open(fileName, 'r') as f:
        file_content = f.read()
        try:
            fragments = file_content.split(str(frag_1 + '\n'))
            piece = fragments[1]
            fragments = piece.split(str(frag_2))
            fragment_C = fragments[0]
        except UnboundLocalError:
            print "The %r has an unrecognized structure \n" % fileName
            return 0
        except IndexError:
            print "The %r has an unrecognized structure \n" % fileName
            return 0

        try:
            fragments = piece.split(str(frag_2))
            fragment_E = fragments[1]
        except IndexError:
            fragment_E = ''

        newFileName = folderPath + ExtractFileName(fileName) + \
            newFileSuffix + '.' + newFileExtension
    with open(str(newFileName), 'w') as f:
        f.write(fragment_C)
        print "Output file saved \n %s \n" % newFileName
    return 1

for fileNameFull in listFiles:
    print "File %s is processed \n" % fileNameFull
    Extract_And_Save(fileNameFull, newFileSuffix_, fragment_B, fragment_D)


Что ли мне на github-е профиль завести ? LOL. Нет, ну если Dr. Smol-у можно обсуждать природу Христа, то почему мне нельзя на github ? 2xLOL. А впрочем, всё это падение профессиональных нравов.

P.S. Скрипт компилировать, я так понимаю, не имеет смысла. Кто ж будет в здравом уме запускать .exe файл от человека, который не умеет нормально программировать ? Это как просить передать обезьяну боевую гранату.
Last edited by IB on Sun Jun 17, 2018 10:07 am, edited 1 time in total.
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby IB » Sat Jun 16, 2018 8:56 pm

Да, и ещё кое-что, чтобы совсем закрыть тему. Я проигнорировал часть задачи, которая касается переименований из-за её тривиальности. В принципе существует огромное количество софта, которое делает это автоматически - чуть ли не каждый файлменеджер. Вот как случай доктора выглядит в TotalCommander (Search for" (.*?)([0-9_]*[.]), Replace with: $2; нужно обратить внимание, чтобы опции E и RegEx были выделены. Файлы "до" и "после" выведены на панели):
Attachments
Multirename_sm.jpg
Multirename_sm.jpg (57.36 KiB) Viewed 2632 times
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby dr_Strangelove » Sat Jun 16, 2018 9:44 pm

А переименовывать я научился с помощью гугола. Рассказываю
Сначала выделяешь все файлы и нажимаешь переименовать первый, предположим в Очень_Важный_Спектр. Просто в винде, без файл-менеджеров.
Тот час все файлы приобретают имена Очень_Важный_Спектр(0), Очень_Важный_Спектр(1), Очень_Важный_Спектр(2) и т.д.
Потом приходится воспользоваться ДОСОМ (это, конечно, чудовищно - пользоваться командной строкой в 2018 году, но в гуе такого не вшито, по видимому)
cd Путь_к_папке
rename *.Расширение1 *.Расширение2
Достаточно удобно :-)
Дух свободы… К перестройке // ‎ Вся страна стремится, // Полицейский в грязной Мойке //‎ Хочет утопиться.
Не топись, охранный воин,— // ‎ Воля улыбнётся! // Полицейский! будь покоен — // ‎ Старый гнёт вернется
User avatar
dr_Strangelove
 
Posts: 652
Joined: Mon Oct 18, 2004 9:17 pm
Location: Химфак-ФНМ-Химфак+ФИАН

Re: Пакетная обработка файлов

Postby dr_Strangelove » Sat Jun 16, 2018 9:47 pm

IB wrote:Мне тут стало интересно, как это сделать на Питоне с пакетной обработкой. По сути нужно было подчитать glob.glob.

Короче наваял для Доктора на Python 2.7, чтобы он не говорил, что здесь недружелюбные звери бродят (скрипт от человека, который не умеет программировать - т.е. один лысый дарит другому лысому расчёску. Зато работает. С другой стороны кто-то, скажем ИСН, будет крутить носом и восклицать "O tempora, o mores" :) ).

Спасибо! Измерения показали, что требуются новые измерения, так что я с вынужден буду получить еще такую же кучу бессмысленных файлов и вытаскивать данные из них - заодно протестирую Ваш скрипт
С приветом! :beer: :clap: :up:
Дух свободы… К перестройке // ‎ Вся страна стремится, // Полицейский в грязной Мойке //‎ Хочет утопиться.
Не топись, охранный воин,— // ‎ Воля улыбнётся! // Полицейский! будь покоен — // ‎ Старый гнёт вернется
User avatar
dr_Strangelove
 
Posts: 652
Joined: Mon Oct 18, 2004 9:17 pm
Location: Химфак-ФНМ-Химфак+ФИАН

Re: Пакетная обработка файлов

Postby IB » Sun Jun 17, 2018 10:10 am

Ну вот и отлично. Я там вверху вставил скрипт в теги [code][/code], теперь можно копи-пастить. Неприятная особенность местного движка в том, что если этого не сделать, то игнорируются начальные пробелы и табуляции. Дублирую файл здесь. Он запакован, потому как добрый администратор не разрешает делиться нам python скриптами как они есть. Пользуйтесь на здоровье.
Attachments
Extractor.zip
(1000 Bytes) Downloaded 80 times
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby IB » Sun Jun 17, 2018 10:26 am

dr_Strangelove wrote:Потом приходится воспользоваться ДОСОМ (это, конечно, чудовищно - пользоваться командной строкой в 2018 году, но в гуе такого не вшито, по видимому)
LOL. Вызовите ИСН-а на баттл по этому поводу :mrgreen: . А я покушаю попкорна. Если бы он снизошёл, то железной палицей вбивал бы мысль о том, что только командная строка, только хардкор. Вы будете защищать мысль, что только GUI. Истина, как обычно, посередине - лучше всего комбинация двоих с user-friendly поддержкой скриптинга и возможностью записи макросов. Но в конечном счёте, если уж нужно выбирать что-то одно, то конечно альтернативы командной строке нет. Вообще.

dr_Strangelove wrote:cd Путь_к_папке
rename *.Расширение1 *.Расширение2
Достаточно удобно :-)

Вот если бы сделали бы такую таблицу из строчек:
Code: Select all
rename name_old1.ext_old1 name_new1.ext_new1
rename name_old2.ext_old2 name_new2.ext_new2

...
и назвали бы это *.bat файлом, потом запустив его, то всё бы переименовалось автоматически. Это и есть тот путь, который Вы запрашивали вначале (точнее та часть, которая касается переименования). Несмотря на простоту, я этот метод Вам не рекомендовал, потому, что для него нужно в общем случае генерировать список файлов и править его, для чего желателен файл-менеджер. В свою очередь нормальные файл-менеджеры предлагают так же и функцию переименования.
То, что Вы сделали - это практически обрезанный вариант, или частный случай использования функций встроенного файл менеджера для переименования. Но этот вариант слабенький - в общем случае глубинного преобразования имени с манипуляциями над номером таким образом не достигнуть. Так что лучше просто использовать для этого файл менеджер, как показано выше.
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby ИСН » Mon Jun 18, 2018 11:05 am

Э...
Тут, вижу, уже всё, так что я пойду позагораю.

Раз:
Code: Select all
#!perl -i.bak -p
$_="" unless m/^([\d\s\.\-]+)$/;

Два:
Code: Select all
opendir(DIR,".") or die $!;
while ($_ = readdir(DIR)){
   next unless m/.blablabla$/;
   $old=$_;
   s/[^\d]+(\d+)\.blablabla/$1.sp/g;
   $new = $_;
   system "perl.exe 1.pl $old";
   system "move $old $new";
}
User avatar
ИСН
 
Posts: 2320
Joined: Fri Oct 10, 2003 5:32 pm
Location: с Территории

Re: Пакетная обработка файлов

Postby IB » Wed Jun 20, 2018 2:05 pm

Заметьте, Доктор, ИСН демонстрирует Вам магию мощь Perl, который и создан для таких задач. С одной стороны эффективно, а с другой уродливо донельзя (мнение со стороны, от человека, далёкого от высоких компетенций). Запускать скрипт Perl из неизвестного источника не намного меньший риск, чем запускать .exe файл, ибо замаскировать непотребство в первом достаточно просто :).

Кстати, ИСН, какой язык программирования на Ваш взгляд более уродлив чем Perl (ожидаю услышать что-то из функциональных, типа Lisp, Haskell, Erlang - но мне кажется, что с одной стороны это дело привычки, и в определённых случаях они даже могут претендовать на статус наиболее элегантных, а с другой Perl особо уродлив именно в сравнении языков не радикально далёких от него, но с меньшим акцентом на скриптинг) ?
User avatar
IB
 
Posts: 7524
Joined: Wed Jul 25, 2007 9:12 pm

Re: Пакетная обработка файлов

Postby ИСН » Wed Jun 20, 2018 11:22 pm

Ну, я не так-то много языков знаю. И из тех, что знаю, никакой другой (кроме откровенно шуточных) не создавался с мыслью использовать в синтаксисе все символы, которые можно ввести с клавиатуры.
Своя красота в нём есть, но это инопланетная красота.
User avatar
ИСН
 
Posts: 2320
Joined: Fri Oct 10, 2003 5:32 pm
Location: с Территории

Re: Пакетная обработка файлов

Postby Сратель » Sun Jun 24, 2018 2:31 pm

Не знаю как у Обивана и Стрэйнджлава, а у меня выражение "папка с файлами" всегда ассоциировалось с фразой "мошонка с яйцами".
Свежо питание, а серится с трудом
User avatar
Сратель
Genius loci
 
Posts: 10343
Joined: Thu Sep 19, 2013 7:06 pm


Return to Обсуждаем профессию

Who is online

Users browsing this forum: No registered users and 2 guests

cron