-1

これにどのようにアプローチするかわかりません。空白と特殊文字がたくさんあるテキストファイルでこの長い文字列を照合し、文字を前面に追加しようとしています。「//」

私はこの行に一致する必要があります:

$menu_items['gojo_project']                    => array('http://www.gojo.net/community/plugin-inventory/ops-gojo/gojo', 'gojo',3),

そしてそれをこれに変えてください:

//$menu_items['gojo_project']                    => array('http://www.gojo.net/community/plugin-inventory/ops-gojo/gojo', 'gojo',3),

2つの「/」文字を前に付けただけであることに注意してください。

re.escapeを使用して文字列をフォーマットしようとしましたが、非常に長く、まだsytaxエラーがスローされます。're'を使用してこれを正しい方法で行っていますか?または、テキストファイル内のこのような文字列を照合して先頭に追加するためのより良いPythonの方法はありますか?

編集:ファイルをインラインで編集する必要があることを忘れました。要するに、私がその行を見つけてコメントアウトしようとしているのは長いphpスクリプトです(つまり//)。ですから、提案された解決策のいくつかは、別のファイルに変更を書き込んでいるので、実際には使用できません(私は思います)。

4

2 に答える 2

2

それを試してみるfileinputと、ファイルを読み直して、その場で行を書き直すことができます。

import fileinput

for line in fileinput.input("myfile.txt", inplace = 1):
    if line == "$menu_items['gojo_project']                    => array('http://www.gojo.net/community/plugin-inventory/ops-gojo/gojo', 'gojo',3),":
        line = '//' + line
    print line,
于 2012-02-23T16:03:42.507 に答える
0

その文字列を正確に一致させようとしている場合は、正規表現ではなく、文字列の等式演算子を使用する方が簡単です。

longString = "$menu_items['gojo_project']                    => array('http://www.gojo.net/community/plugin-inventory/ops-gojo/gojo', 'gojo',3),"

input = open("myTextFile.txt", "r")
output = open("myOutput.txt", "w")
for line in input:
    if line.rstrip() == longString: #rstrip removes the trailing newline/carriage return
        line = "//" + line
    output.write(line)
input.close()
output.close()
于 2012-02-23T16:03:13.807 に答える