-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfiletools.py
36 lines (30 loc) · 1015 Bytes
/
filetools.py
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
import os
import filecmp
from glob import glob
from config import DATA_DIR
class RegenerateFile():
def __init__(self, filename):
self.file = None
self.filename = filename
self.new_filename = filename + ".new"
self.file = open(self.new_filename, "w")
if not self.file:
print("Can't open file %s for writing" % self.new_filename)
exit(2)
def finalize(self):
if not self.file:
return
self.file.close()
if os.path.isfile(self.filename) and filecmp.cmp(self.filename, self.new_filename, shallow=False):
os.remove(self.new_filename)
print("File %s was not changed" % self.filename)
else:
os.rename(self.new_filename, self.filename)
print("Generated new %s" % self.filename)
def write(self, text):
return self.file.write(text)
def print(self, text, end='\n'):
return self.write(text + end)
def get_dir_names(dirname, ext):
prefix = DATA_DIR + '/' + dirname + '/'
return sorted(filename.removeprefix(prefix).removesuffix(ext) for filename in glob(prefix + "*" + ext))