Python 如何从csv文件中散列特定列?
我试图对第2列和第8列进行散列,但最终对整个文件进行了散列。我的代码有什么问题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
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
中,但是当我运行代码时,所有列都被散列了。那么我们谈论的不是同一个代码为什么您认为所有列都被散列了?请添加一些代码来证明它。只是添加了两个文件的截图