Какой язык сценариев я могу использовать для автоматизации конкатенации и архивирующий процесс?

Хорошо, так в основном, я должен был сделать следующее.

Загрузитесь в OSX, подключите устройство, получите соединенный.

Перезагрузка в Ubuntu (или безотносительно), затем сделайте то, что описано здесь для создания нескольких записей запуска, конкретно /etc/xdg/autostart/bluetooth-*.desktop видимый в Приложениях Запуска через установку NoDisplay=false на каждом из них. Откройте Приложения Запуска и отключите Апплет Bluetooth.

Теперь, установка blueman и запустите его. Удостоверьтесь, что это выбрано в Приложениях Запуска:

sudo add-apt-repository ppa:blueman/ppa && ( sudo apt-get update ; sudo apt-get install blueman )

После того, как сделанный, перезапуск и настраивают вещи с помощью blueman, а не значение по умолчанию Ubuntu bluetooth-applet.

Существует особенно несколько проблем здесь, конкретно что наушники и т.п. автоматически не соединяются, но это для другого вопроса.

Вы, вероятно, спрашиваете, почему необходимо было загрузиться в OSX, чтобы сделать это. Хороший вопрос. По-видимому, Лев хранит много конфигурации во встроенном микропрограммном обеспечении и делает некоторый довольно странный материал с EFI, чтобы заставить это произойти. Я заметил, что изменение определенных вещей в Linux изменяет вещи в OSX и наоборот. Супер странный, но это - Apple.

2
16.04.2013, 16:36
2 ответа

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

Учитывая этот каталог файлов (вся другая длина, но заполненный тем же символом):

-rw-rw-r-- 1 anthon users   24 Apr 16 15:03 01.mid
-rw-rw-r-- 1 anthon users  254 Apr 16 15:03 02.mid
-rw-rw-r-- 1 anthon users  455 Apr 16 15:03 03.mid
-rw-rw-r-- 1 anthon users   98 Apr 16 15:03 04.mid
-rw-rw-r-- 1 anthon users  444 Apr 16 15:03 05.mid
-rw-rw-r-- 1 anthon users  239 Apr 16 15:03 06.mid
-rw-rw-r-- 1 anthon users  257 Apr 16 15:03 07.mid
-rw-rw-r-- 1 anthon users  128 Apr 16 15:03 08.mid
-rw-rw-r-- 1 anthon users  228 Apr 16 15:03 09.mid
-rw-rw-r-- 1 anthon users  160 Apr 16 15:03 10.mid

и эта программа test.py:

#! /usr/bin/env python
# coding: utf-8

import sys
import os
import csv
import bz2

comb_name_map = {}
file_names = []
prev_name = None

# combine the names
for name in sys.argv[1:]:
    if prev_name:
        basename, ext = os.path.splitext(name)
        basename = os.path.basename(basename)
        combi_name = os.path.splitext(os.path.basename(prev_name))[0] + name
        comb_name_map[combi_name] = (prev_name, name)
        prev_name = None
    else:
        prev_name = name

for combi, org in comb_name_map.iteritems():
    file_names.append(combi + '.bz2')
    with bz2.BZ2File(file_names[-1], 'w') as outf:
        for name in org:
            with open(name, 'rb') as inf:
                buf = inf.read()
                outf.write(buf)
                file_names.append(name + '.bz2')
                with bz2.BZ2File(file_names[-1], 'w') as compf:
                    compf.write(buf)

with open('filesizes.csv', 'w') as fp:
    csvf = csv.writer(fp)
    for name in file_names:
        size = os.path.getsize(name)
        csvf.writerow([name, size])

выполнение как:

python test.py *.mid

Вы получите следующие выходные файлы:

-rw-rw-r-- 1 anthon users 45 Apr 16 15:26 0102.mid.bz2
-rw-rw-r-- 1 anthon users 39 Apr 16 15:26 01.mid.bz2
-rw-rw-r-- 1 anthon users 39 Apr 16 15:26 02.mid.bz2
-rw-rw-r-- 1 anthon users 45 Apr 16 15:26 0304.mid.bz2
-rw-rw-r-- 1 anthon users 43 Apr 16 15:26 03.mid.bz2
-rw-rw-r-- 1 anthon users 39 Apr 16 15:26 04.mid.bz2
-rw-rw-r-- 1 anthon users 44 Apr 16 15:26 0506.mid.bz2
-rw-rw-r-- 1 anthon users 43 Apr 16 15:26 05.mid.bz2
-rw-rw-r-- 1 anthon users 39 Apr 16 15:26 06.mid.bz2
-rw-rw-r-- 1 anthon users 41 Apr 16 15:26 0708.mid.bz2
-rw-rw-r-- 1 anthon users 39 Apr 16 15:26 07.mid.bz2
-rw-rw-r-- 1 anthon users 37 Apr 16 15:26 08.mid.bz2
-rw-rw-r-- 1 anthon users 43 Apr 16 15:26 0910.mid.bz2
-rw-rw-r-- 1 anthon users 39 Apr 16 15:26 09.mid.bz2
-rw-rw-r-- 1 anthon users 39 Apr 16 15:26 10.mid.bz2

и файл filesizes.csv:

0910.mid.bz2,43
09.mid.bz2,39
10.mid.bz2,39
0708.mid.bz2,41
07.mid.bz2,39
08.mid.bz2,37
0304.mid.bz2,45
03.mid.bz2,43
04.mid.bz2,39
0506.mid.bz2,44
05.mid.bz2,43
06.mid.bz2,39
0102.mid.bz2,45
01.mid.bz2,39
02.mid.bz2,39

Удостоверьтесь, что у Вас есть четное число .mid файлы. Для включения исходных имен файлов и размеров просто свяжите имя к file_names при обработке.

5
27.01.2020, 21:51

Да - сценарии удара смогут отвечать требованиям. Но необходимо использовать любой язык сценариев, которым Вы довольны. Python, жемчуг является другими возможностями.

3
27.01.2020, 21:51
  • 1
    , которым дальнейшее преимущество жемчуга или Python (или рубин) состояло бы в том, что они должны все иметь библиотеки для взаимодействия через интерфейс с matlab и намного лучшие структуры данных, чем удар для таблиц. –  goldilocks 16.04.2013, 19:09

Теги

Похожие вопросы