Вам нужно обновить пользовательский интерфейс, поэтому используйте
Dispatcher.BeginInvoke(new Action(() => {GetGridData(null, 0)}));
Использование командной строки от'python -h
'конечно, убедительно предполагает, что нет такого эквивалента. Perl имеет тенденцию делать широкое применение'$_
'(Ваши примеры делают неявное использование из него), и я не думаю, что Python поддерживает любое подобное понятие, таким образом, делая эквиваленты Python острот Perl намного тяжелее.
Python для маглов. Если вам нужна магия, то вам следует использовать Perl!
Эквивалент - пи не то, что трудно записать в Python.
Запись самостоятельно удобный модуль с-p и-i функциями Вам действительно нравится. Давайте назовем его pypi.py
.
Использование python -c 'import pypi; pypi.subs("this","that")'
можно реализовать основной-p цикл с модуль fileinput .
у Вас была бы функция, subs
, который реализует существенный "-i" алгоритм открытия файла, сохранения резервной копии и выполнения замены на каждой строке.
существуют некоторые activestate рецепты как это. Вот некоторые:
Не встроенный. Но не трудный записать. И когда-то записанный легкий настроить.
Я знаю, что это на пару лет позже, но я недавно нашел очень хороший инструмент под названием pyp , который делает именно то, что вы просили.
Я думаю, что ваша команда должна быть:
pyp "p.replace('foo','bar')"
Я думаю, что жемчуг лучше подходит для этого отчасти на лету сценарии. Если Вы хотите быстрый на лету одноразовая поддержка сценариев, я рекомендую придерживаться жемчуга, awk, sed, и стандартных инструментов командной строки Unix.
, Но если Ваше заинтересованное использованием Python, я использую optparse, чтобы записать мои собственные инструменты командной строки и рекомендовать его. optparse предоставляет чистому и простому в использовании синтаксическому анализатору параметра командной строки созданный в поколении справки.
Вот образец:
def myfunc(filename, use_versbose):
# function code
if __name__ == '__main__':
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
if options.filename:
myfunc(options.filename, options.verbose)
else:
print 'ERROR -- Necessary command line options not given!'
print parser.print_help()
синтаксический анализатор print_help () генерирует следующий вывод и автоматически отображен, когда-h или - справка дан в командной строке:
usage: <yourscript> [options]
options:
-h, --help show this help message and exit
-f FILE, --file=FILE write report to FILE
-q, --quiet don't print status messages to stdout
Модуль ввода файлов имеет возможность редактирования на месте. Вы не можете обойтись без резервных копий, хотя. Вот как использовать его для однострочного:
python -c 'import fileinput, sys; for line in fileinput.input(inplace=True): sys.stdout.write(line, "foo", "bar")'
Лично я обычно использую Perl, когда мне нужно сделать что-то подобное. Это один из немногих случаев, когда я использую Perl.
Вышесказанное может работать для стандартного ввода, но не похоже, что оно будет работать для файла.
Может быть что-то вроде:
-
import fileinput
import sys
for line in fileinput.input("./poop", inplace=True):
line = line.replace("foo", "bar")
sys.stdout.write(line)
- где «./poop» можно заменить тем, где находится ваш файл, а line.replace должен поддерживать такие вещи, как line. заменить ( "{}". формат (variablehere), "newtext")