i вывел текстовый файл на основе ввода пользователем из файла csv в определенном формате (с помощью предложений пользователя). Теперь я хочу хэшировать только значение справа от знака «=» и выводить новый текстовый файл с таким же форматом, но хешированные значения вправо. вот код предложил мне с некоторыми из моих модов, который работал на 1-й части:Как хэш только значение справа от знака «=» (или любого другого разделителя) и вывод нового текстового файла
import csv
device = input("Enter the device name: ").upper()
output_file = 'C:\path_to_scripts\{}_items.txt'.format(device)
with open(r'C:\path_to_script\filename_Brief.csv') as infh, \
open(output_file, 'wt') as outfh:
reader = csv.DictReader(infh)
for row in reader:
if row['ALIAS'] == device:
outfh.write('Full_Name = {Full_Name}\n'
'PHONE_NO = {PHONE_NO}\n'
'ALIAS = {ALIAS}\n'.format(**row))
Я могу хаш всю строку, используя такой код:
import hashlib
with open(outfh, 'r') as file:
lines = [x.strip('\n') for x in file.readlines()]
hashfile = 'C:\path_to_scripts\{}_hashed.csv'.format(device)
with open(hash_file,'w') as save_file:
# Write the saved file header
header = '\"Value\",\"Algorithm\",\"Hash\"\n'
save_file.write(header)
# For each line in file
for line in lines:
# Create a list of all the available algorithms
algorithms = ['md5','sha1','sha224','sha256','sha384','sha512']
# For each algorithm
for algo in algorithms:
# Encode the original value as utf8
val_enc = line.encode('utf-8')
# Create the hashing object using the current algorithm
hashed = hashlib.new(algo)
# Set the value we want the hash of
hashed.update(val_enc)
# Get the hash
hash_digest = hashed.hexdigest()
results = '\"{}\",\"{}\",\"{}\"\n'.format(line, algo, hash_digest)
save_file.write(results)
но не может понять, как разделить линию - например, «Full_Name = Jack Flash», чтобы получить только «Jack Flash» в качестве объекта, который нужно хэшировать, хеш «Jack Flash» и записать значения в новый текстовый файл с форматом ключа = хешированное значение. Вышеприведенный код сохраняет файл csv. Я режу и вставляю соответствующие разделы, поэтому надеюсь, что это имеет смысл. Любые идеи о том, как это сделать? заранее спасибо!