Я написал скрипт Python для извлечения информации о жестком диске из файла журнала.
Файл журнала, с которым я работаю, плохо отформатирован.
Поэтому я ищу все значения вместе, как это:
lineDict = dict([(line) for line in enumerate(hd.readlines())])
x = json.dumps(lineDict, indent = 1)
y = re.findall(r'Caption=.*[c-zC-Z]:|FileSystem=NTFS|Size=\d+|FreeSpace=\d+',x,re.M)
Все мои значения свободного пространства и размера (общего размера) являются байтами, поэтому я должен пройти через них отдельно от других значений, чтобы быстро преобразовать их в целые числа, а затем преобразовать эти значения байтов в удобочитаемую форму. (MB, GB, и т.д. ...):
Я возился с этими значениями «Свободное пространство» и «Общий размер», чтобы красиво отобразить вывод на экране, с разделителем каналов для «Общий размер» и «Свободное пространство»:
getBytes = re.findall(r'\d+',cropHdds)
getBytes = [int(x) for x in getBytes]
valsL = []
for vals in getBytes:
hVals = convertBytes(vals)
valsL.append(hVals)
hrFixed = json.dumps(valsL, indent = 2)
hrDisplay = replaceMany(hrFixed.strip(),[("\n",""),('"',''),("'",""),(']',''),('[','')])
a = re.sub("\\s+", "", hrDisplay)
b = textwrap.fill(a, 14)
c = b.replace(","," | ")
hrValsF = c.center(60)
Наконец, у меня есть два списка:
Бессмыслицы:
['C:', 'D:', 'E:', 'F:', 'G:', 'Z:']
DriveInfoL:
['52.7GB | 119.7GB', '22.9GB | 80.0GB', '25.2GB | 50.0GB']
Я хочу объединить эти значения вместе, как в следующем примере:
C:,52.7GB | 119.7GB, D: 22.9GB | 80.0GB, E:'25.2GB | 50.0GB
У меня есть другая переменная, которая ищет «Тип файловой системы», я точно знаю, что у меня только 3 жестких диска NTFS (C, D, E).
После поиска и ударов головой о клавиатуру очень долго.
Я перепробовал много методов сортировки, таких как преобразование этих строк в кортеж или дикты, используя странные списки, которые в конечном итоге приводят к утечке памяти, а также попробовал некоторые творческие нотации фрагментов, так или иначе, я не могу понять это правильно, поэтому я ищу помощь, чтобы преодолеть это препятствие, у меня есть ощущение, что я слишком много работаю, и это должно быть решением.
Заранее благодарим за помощь.