Заявление об ограничении ответственности: я прочитал поток, расположенный по адресу Ошибка Python: «ValueError: требуется более 1 значения для распаковки» , и ни один из ответов не объясняет, как на самом деле получить код
Я читаю Learn Python the Hard Way и выполняю упражнение 13.
Вот код, который я пытаюсь запустить в IDLE (не знаю, как он на самом деле называется) для Python 2.7:
from sys import argv
script, first, second, third = argv
print "The script is called:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third
При запуске выдает ошибку:
" Файл "C: \ Python \ LPTHW \ examples_LPTHW \ ex13.py", строка 3, в сценарий, первый, второй, третий = argv м пытаюсь сделать возможным перетаскивание файлов из Finder в мое приложение SWT. В Windows и Ubuntu работает следующий фрагмент кода: public class DndTest {public static void main (final ...
Я пытаюсь сделать возможным перетаскивание файлов из Finder в мое приложение SWT. В Windows и В Ubuntu работает следующий фрагмент кода:
public class DndTest {
public static void main(final String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display, SWT.DIALOG_TRIM);
shell.setText("Drag & drop test");
shell.setSize(200, 200);
final FormLayout layout = new FormLayout();
shell.setLayout(layout);
final Label lbl = new Label(shell, SWT.NORMAL);
lbl.setAlignment(SWT.CENTER);
lbl.setText("Drop files here");
final FormData layoutData = new FormData();
layoutData.left = new FormAttachment(50, -100);
layoutData.top = new FormAttachment(50, -15);
layoutData.right = new FormAttachment(50, 100);
layoutData.bottom = new FormAttachment(50, 15);
lbl.setLayoutData(layoutData);
final DropTarget dt = new DropTarget(shell,
DND.DROP_DEFAULT | DND.DROP_MOVE);
final FileTransfer fileTransfer = FileTransfer.getInstance();
dt.setTransfer(new Transfer[] { fileTransfer });
dt.addDropListener(new DropTargetAdapter() {
@Override
public void drop(final DropTargetEvent event) {
System.out.println(event);
String fileList[] = null;
final FileTransfer ft = FileTransfer.getInstance();
if (ft.isSupportedType(event.currentDataType)) {
fileList = (String[]) event.data;
}
for (final String file : fileList) {
System.out.println("- " + file);
}
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
У меня складывается впечатление, что мое приложение не регистрирует себя как цель перетаскивания на Mac, потому что при наведении курсора на него я не вижу курсора перетаскивания.
Я использую последний SWT 3.5 (я не могу использовать 3.6, потому что для совместимости мне нужно придерживаться Carbon и Java 1.5).
Есть идеи, что здесь не так?
Изменить : Я изменил код, чтобы он был полностью закрытым. Например, он выводит пропущенные имена файлов на консоль в Windows и Ubuntu, но ничего не делает на Mac.