Coverage for cfg_checker/common/file_utils.py : 32%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import grp
2import os
3import pwd
4import time
6from cfg_checker.common import config
8_default_time_format = config.date_format
11def remove_file(filename):
12 os.remove(filename)
13 # open('filename', 'w').close()
16def write_str_to_file(filename, _str):
17 with open(filename, 'w') as fo:
18 fo.write(_str)
21def append_str_to_file(filename, _str):
22 with open(filename, 'a') as fa:
23 fa.write(_str)
26def write_lines_to_file(filename, source_list):
27 with open(filename, 'w') as fw:
28 fw.write("\n".join(source_list) + "\n")
31def append_lines_to_file(filename, source_list):
32 _buf = "\n".join(source_list)
33 with open(filename, 'a') as fw:
34 fw.write(_buf + "\n")
37def append_line_to_file(filename, _str):
38 with open(filename, 'a') as fa:
39 fa.write(_str+'\n')
42def read_file(filename):
43 _buf = None
44 with open(filename, 'rb') as fr:
45 _buf = fr.read()
46 return _buf
49def read_file_as_lines(filename):
50 _list = []
51 with open(filename, 'rt') as fr:
52 for line in fr:
53 _list.append(line.rstrip())
54 return _list
57def get_file_info_fd(fd, time_format=_default_time_format):
59 def format_time(unixtime):
60 return time.strftime(
61 time_format,
62 time.gmtime(unixtime)
63 )
65 (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = \
66 os.fstat(fd.fileno())
68 _dict = {
69 'fd': fd.fileno(),
70 'mode': oct(mode & 0o777),
71 'device': hex(dev),
72 'inode': ino,
73 'hard_links': nlink,
74 'owner_id': uid,
75 'owner_name': pwd.getpwuid(uid).pw_name,
76 'owner_group_name': grp.getgrgid(gid).gr_name,
77 'owner_group_id': gid,
78 'size': size,
79 'access_time': format_time(atime),
80 'modification_time': format_time(mtime),
81 'creation_time': format_time(ctime)
82 }
84 return _dict
87def get_gzipped_file(url):
88 # imports
89 from io import BytesIO
90 from requests import get
91 import gzip
92 # download a file
93 _bytes = BytesIO(get(url).content)
94 with gzip.GzipFile(fileobj=_bytes) as gz:
95 return gz.read()
98def ensure_folder_exists(_folder):
99 if not os.path.exists(_folder):
100 # it is not exists, create it
101 os.mkdir(_folder)
102 return "... folder '{}' created".format(_folder)
103 else:
104 return "... folder is at '{}'".format(_folder)