Print filename only if one found

Signed-off-by: Rémi BERTHO <remi.bertho@dalan.fr>
This commit is contained in:
Rémi BERTHO 2017-10-24 19:56:02 +02:00
parent 91fbfe0c00
commit 0ba4b373cb
Signed by: dalan
GPG key ID: EE3B917931C07B64

22
SSnR.py
View file

@ -105,7 +105,8 @@ def main():
return -1
for input_filename in filenames:
try:
output_file = open((input_ex.subn(args["regex_output"], input_filename))[0], "w", encoding="utf8")
output_file = open((input_ex.subn(args["regex_output"], input_filename))[0], "w",
encoding="utf8")
output_files.append(output_file)
except OSError as exception:
print("Error: file not found: " + str(exception))
@ -150,8 +151,11 @@ def main():
print("File: " + filename)
print(" - Number of replace: " + str(nb_replace))
else:
nb_match, str_found = search(ex, string, is_file)
if nb_match > 0:
print("File: " + filename)
search(ex, string, is_file)
print(" - Number of match: " + str(nb_match))
print(str_found)
else:
if args["replace"] is not None:
replace_string, nb_replace = replace(ex, string, args["replace"])
@ -163,7 +167,9 @@ def main():
if args["print_nb_match"]:
print("Number of replace: " + str(nb_replace))
else:
search(ex, string, is_file)
nb_match, str_found = search(ex, string, is_file)
print("Number of match: " + str(nb_match))
print(str_found)
return 0
def compile_regex(ex, ignore_case):
@ -192,16 +198,15 @@ def search(ex, string, is_file):
ite = ex.finditer(string)
nb_match = 0
str_found = ""
for match in ite:
nb_match += 1
if is_file:
num_line, begin_pos, end_pos = find_line(match.start(0), match.end(0), new_lines)
print(" - Found \"" + match.group(0) + "\" at line " + str(num_line) + " [" + str(begin_pos) +
":" + str(end_pos) + "]")
str_found += " - Found \"%s\" at line %d [%d:%d]\n" % (match.group(0), num_line, begin_pos, end_pos)
else:
print(" - Found \"" + match.group(0) + "\" at [" + str(match.start(0) + 1) +
":" + str(match.end(0)) + "]")
print(" - Number of match: " + str(nb_match))
str_found += " - Found \"%s\" at [%d:%d]\n" % (match.group(0), match.start(0), match.end(0))
return nb_match, str_found
def replace(ex, string, replace_string):
@ -244,4 +249,3 @@ def find_line(begin_pos, end_pos, new_lines):
if __name__ == '__main__':
sys.exit(main())