以前はPython Mass Editorとして知られていました
Pythonコードを使用してテキストファイルを処理するために、Python Mass Editorを実装します。変更は、diff出力としてstdoutに表示されます。次に、-w/ - 書き込みオプションを使用して、ターゲットファイルを所定の位置に変更できます。これは、Python 3を搭載した2to3ツールに非常に似ています。
警告: eval()の使用に関する注意の言葉 |
このツールは、それが行く限り有用ですが、Python |
おそらく、Python REモジュール(正規表現)の基本を知る必要があるでしょう。
使用法:massedit.py [-h] [-v] [-w] [-v] [-e expressions] [-f関数]
[-x executables] [-s start_dirs] [-m max_depth] [-o file]
[-gファイル] [ - エンコードエンコード] [ - newline newline]
[ファイルパターン[ファイルパターン...]]
Python Mass Editor
位置的議論:
ファイルパターンシェルのようなファイル名パターンを処理するか - 読む
stdinから。
オプションの引数:
-H、 - ヘルプこのヘルプメッセージと出口を表示します
-v、-versionはプログラムのバージョン番号と終了を示します
-w、 - writeターゲットファイルを配置された変更。それ以外の場合はdiffを表示します。
-v、 - verboseは対数冗長を増加させます(複数を指定できます
時代)
-e式、 - 発現式
ターゲットファイルに適用されるPython式。を使用します
現在の行を参照するライン変数。
-f関数、 - 機能関数
ターゲットファイルに適用するPython関数。ファイルを取得します
入力ラインおよび降伏線としてのコンテンツ。機能を指定します
[モジュール]:?<function name>。
-x実行可能ファイル、 - 執行可能な実行可能ファイル
ターゲットファイルに適用するPython実行可能ファイル。
-s start_dirs、-start start_dirs
ターゲットを探すためのディレクトリ(IES)。
-m max_depth、-max-depth-revel max_depth
サブディレクトリを歩くときの最大深度。
-oファイル、-outputファイル
出力をファイルにリダイレクトします
-gファイル、-Generateファイル
-fオプションに適したスタブファイルを生成します
- 入力ファイルと出力ファイルのエンコードのエンコードエンコード
-Newline出力ファイルのNewline Newline文字
例:
#単純な文字列置換(-e)。 diffが表示されます。変更は適用されません。
massedit.py -e "re.sub( 'failif'、 'assertfalse'、line)" *.py
#ファイルレベルの変更(-f)。ファイルを所定の位置に上書きします(-w)。
massedit.py -w -f fixer:fixit *.py
#テストのサブディレクトリですべてのテスト*.pyを変更します。
massedit.py -e "re.sub( 'failif'、 'assertfalse'、line)" -s tests test*.py
#は、仮想メソッド(ほぼ)をGmockに適したmock_methodに変換します(https://github.com/google/gooletestを参照)。
massedit.py -e "re.sub(r ' s*virtual s+([ w:<>、 s&*]+) s+( w+)(([^)]*)) s*(( w+)*)(= s*0)?? g <3>、( g <4>、Override)); '、line) "gmock_test.cpp
MassEditがパッケージとして(たとえばPypiから)インストールされている場合、コマンドラインツールとして対話できます。
python -m massedit -e "re.sub( 'assertequals'、 'assertequal'、line)" test.py
またはライブラリとして(上記のコマンドラインオプションは、Kewyordの議論として渡されます):
>>> Masseditをインポートします >>> filenames = ['massedit.py'] >>> massedit.edit_files(filenames、["re.sub( 'jerome'、 'J.'、line)"])
最後に、配布に含まれるWindows用の便利なmassedit.batラッパーがあります。
http://github.com/elmotec/masseditからmassedit.pyをダウンロードするか:
python -m pipインストールmassedit
私は、このような大規模なコードベースの変更をソースにソースに主にMasseditを使用していることに気づきました。
最初に、ソースコードを処理する関数を備えたfixer.py Pythonモジュールを作成します。たとえば、ヘッダーを追加するには:
def add_header(lines、file_name):
hired '//これは私のヘッダーです'#はファイルの最初の行になります。
線の場合:
降伏線
fixer.pyの場所を$PYTHONPATHに追加してから、このようにmassedit.pyを呼び出すだけです。
Massedit.py -f Fixer:add_header *.h
-s .すべての.hファイルを再帰的に処理するオプション。
私は何年もの間(Unix Power Toolsから)runsed and Checksedを使用してきましたが、ActivestateでGraham Fawcett Python Recipe 437932に出くわすまで、Windowsの下で良い代替品を見つけませんでした。 Masseditを書くように促しました。
コアは少し肉付けされ、ここにいます。便利で強化している場合は、パッチを送信することを忘れないでください。ありがとう!
AWKのようなツールにもっと興味がある場合は、おそらくPYPがより良い代替品だと思うでしょう。
開発のために物事をセットアップするために、最も簡単なのは、追加の構成の開発をピップインストールすることです。
python -m venv venv 。 venv/bin/activate python -m pip install -e。[開発]
最良のことは、コミットを実行する際にコミットメントを使用することです。
MITライセンスの期間に基づいてライセンスされています。添付ファイルライセンスを参照してください。txtを参照してください。
0.69.0以降の変更については、changelog.mdを参照してください
https://github.com/myint https://github.com/tgoodlet https://github.com/alfnet https://github.com/isidroas