叫我有以下的輸入文件「TESTFILE.TXT」:斜線在grep的搜索字符串在Python
$ cat testFile.txt
111 // mNx
222 // mNy not nMx
333 // mNz also not nMx
我想MNX的值,但其他一些線路的含有約MNX意見。 Unix命令行中使用grep找到正確的路線:
$ grep mNx testFile.txt
111 // mNx
222 // mNy not mNx
333 // mNz also not mNx
然而,
$ grep "// mNx" testFile.txt
111 // mNx
OK,到目前爲止好,但我想用Python調用grep的。從this post繼我有
from subprocess import Popen, PIPE
def grep1(inFile, string):
COMMAND = 'grep %s %s' % (string, inFile)
process = Popen(COMMAND, shell=True, stderr=PIPE, stdout=PIPE)
output, errors = process.communicate()
return output
mNx = grep1('testFile.txt', 'mNx')
print mNx
這給現在
111 // mNx
222 // mNy not mNx
333 // mNz also not mNx
如果我改用
mNx = grep1('testFile.txt', '// mNx')
它返回下列信息:
testFile.txt:111 // mNx
testFile.txt:222 // mNy not mNx
testFile.txt:333 // mNz also not mNx
我已經試過"\/\/ mNx"
,r"// mNx"
,r"\/\/ mNx"
等,但無法重現原生grep
行爲。在我的Python字符串中有什麼東西被轉義了?到底是怎麼回事?
@印度感謝您的建議,但這是行不通的。 – feedMe
你需要什麼確切的價值,你需要的數字或整個匹配線? – Inian
我將最終拆分字符串,但這個問題只是要求正確的線:) – feedMe