Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从csv文件中散列特定列?_Python_Csv_Hash - Fatal编程技术网

Python 如何从csv文件中散列特定列?

Python 如何从csv文件中散列特定列?,python,csv,hash,Python,Csv,Hash,我试图对第2列和第8列进行散列,但最终对整个文件进行了散列。我的代码有什么问题 import csv import hashlib with open('UserInfo.csv') as csvfile: with open('UserInfo_Hashed.csv', 'w') as newfile: reader = csv.DictReader(csvfile) for r in reader: hashing

我试图对第2列和第8列进行散列,但最终对整个文件进行了散列。我的代码有什么问题

import csv
import hashlib


with open('UserInfo.csv') as csvfile:

    with open('UserInfo_Hashed.csv', 'w') as newfile:

        reader = csv.DictReader(csvfile)

        for r in reader:

            hashing = hashlib.sha256((r['Password']).encode('utf-8')).hexdigest()

            newfile.write(hashing + '\n')


由于您的代码仅显示您尝试对
密码
列进行哈希运算,因此以下代码仅对
密码
列进行哈希运算

导入csv
导入hashlib
打开('UserInfo.csv')作为csvfile:
以open('UserInfo_Hashed.csv','w')作为新文件:
reader=csv.DictReader(csvfile)
对于枚举(读取器)中的i,r:
#写入csv头文件
如果我是0:
newfile.write(“,”.join(r)+“\n”)
#散列“密码”列
r['Password']=hashlib.sha256((r['Password']).encode('utf-8')).hexdigest()
#使用哈希“Password”将新行写入文件
newfile.write(“,”.join(r.values())+“\n”)
代码的问题在于这一行
newfile.write(hashing+'\n')
,因为这只会将哈希密码写入文件(没有其他列)。另外,您没有将CSV头写入新文件


我强烈建议使用熊猫:

将熊猫作为pd导入
导入hashlib
#读取CSV输入
df=pd.read\u csv('UserInfo.csv'))
#散列“密码”列
df['Password']=df['Password']。应用(λx:\
hashlib.sha256(x.encode('utf-8')).hexdigest()
#写入新的CSV输出
df.to_csv('UserInfo_Hashed.csv',index=False)

您编写的代码不会散列整个文件。它对
Password
列中的数据进行散列,并将散列写入
newfile
中,但是当我运行代码时,所有列都被散列了。那么我们谈论的不是同一个代码为什么您认为所有列都被散列了?请添加一些代码来证明它。只是添加了两个文件的截图