Открытие файла - Выполнение функции - PullRequest
0 голосов
/ 28 марта 2011

Мне было интересно, может ли кто-нибудь дать мне указание о том, как передавать функции в файл ... Это немного сложно объяснить, поэтому я постараюсь изо всех сил.
Допустим, у меня есть приложение (использующее wxPython), и, скажем, у меня есть файл. Теперь этот файл назначен для открытия вместе с приложением. Итак, я дважды щелкаю файл, и он открывает приложение. Теперь мой вопрос: что нужно написать в файле, например, чтобы открыть диалог? Итак, мы дважды щелкаем файл, и он открывает диалоговое окно приложения?

PS: я знаю, что сначала я должен связать программу с определенным типом файла, чтобы дважды щелкнуть по нему, но это не вопрос.

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

AFAIK большинство платформ просто вызывают вспомогательное приложение с файлом, на который вы щелкнули, в качестве аргумента, поэтому ваш путь к файлу будет в sys.argv[1]

1 голос
/ 28 марта 2011

Я думаю, что он хочет связать расширение файла с его приложением, поэтому, когда он открывает файл, дважды щелкнув по нему, он отправляет содержимое файла в свое приложение;в этом случае отображать содержимое в диалоге?

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

C: \ your \ application.exe "C: \ The \ Path \ To \ my.file"

Теперь, как предложено выше, вам потребуется использовать sys.argv для получения аргументов, передаваемых вашему приложению, в этом случае C: \ Path \ To \ my.file будетПервый аргумент.Проще говоря, sys.argv - это список аргументов, передаваемых приложению;в этом случае первая запись sys.argv [0] всегда будет путем к вашему приложению, и, как упоминалось выше, sys.argv [1] будет путь к вашему пользовательскому файлу.

Пример:

import sys

myFile = sys.argv[1]
f = file(myFile, "r")
contents = f.read()
f.close()

Тогда вы сможете передать переменную contents вашемудиалог, чтобы сделать что-либо с.

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