Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
executable file 63 lines (47 sloc) 1.64 KB
#!/usr/bin/env python
# Natural Language Toolkit: substitute a pattern with
# a replacement in every file
# Copyright (C) 2001-2015 NLTK Project
# Author: Edward Loper <>
# Steven Bird <>
# URL: <>
# For license information, see LICENSE.TXT
# NB Should work on all platforms,
import os
import stat
import sys
def update(file, pattern, replacement):
# make sure we can write the file
old_perm = os.stat(file)[0]
if not os.access(file, os.W_OK):
os.chmod(file, old_perm | stat.S_IWRITE)
# write the file
s = open(file, 'rb').read().decode('utf-8')
t = s.replace(pattern, replacement)
out = open(file, 'wb')
# restore permissions
os.chmod(file, old_perm)
return s != t
except Exception:
exc_type, exc_obj, exc_tb = sys.exc_info()
print('Unable to check {0:s} {1:s}'.format(file, str(exc_type)))
return 0
if __name__ == '__main__':
if len(sys.argv) != 3:
exit("Usage: %s <pattern> <replacement>" % sys.argv[0])
pattern = sys.argv[1]
replacement = sys.argv[2]
count = 0
for root, dirs, files in os.walk('.'):
if not ('/.git' in root or '/.tox' in root):
for file in files:
path = os.path.join(root, file)
if update(path, pattern, replacement):
print("Updated:", path)
count += 1
print("Updated %d files" % count)
Jump to Line
Something went wrong with that request. Please try again.