-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfileFindAndReplace.py
More file actions
59 lines (44 loc) · 1.22 KB
/
fileFindAndReplace.py
File metadata and controls
59 lines (44 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Class that finds and replaces lines
# Based on: http://stackoverflow.com/questions/39086/search-and-replace-a-line-in-a-file-in-python
from fileReader import *
from tempfile import mkstemp
from shutil import move
from os import remove, close
class FileFindAndReplace(FileReader):
def replace(self, replacement_keys):
#Create temp file
replacement_count = 0
fh, abs_path = mkstemp()
new_file = open(abs_path,'w')
self.reopen()
line_num = 0
for line in self.handle:
line_num += 1
for pair in replacement_keys:
if(len(pair) >= 2):
replacement_count += line.count(pair[0])
line = line.replace(pair[0], pair[1])
new_file.write(line)
#close temp file
new_file.close()
close(fh)
self.handle.close()
#Remove original file
remove(self.path)
#Move new file
move(abs_path, self.path)
return replacement_count
def simulatedReplace(self, replacement_keys):
#Create temp file
replacement_count = 0
self.reopen()
line_num = 0
for line in self.handle:
line_num += 1
for pair in replacement_keys:
if(len(pair) >= 2):
replacement_count += line.count(pair[0])
line = line.replace(pair[0], pair[1])
#close temp file
self.handle.close()
return replacement_count