pythonbinascii
⑴ python 判斷是否有非法字元 簡書
#!/usr/bin/python
# -*- coding:utf8 -*-
import binascii
import sys
import os
#定義文件,並檢測多個文件
FILE_PATH = '/Users/wj6/TH'+『』
#把文件不同的部分做一個字典,方便檢測多個文件,減少重復代碼。
m = {
'a':{'file_name':'_a.txt'}
'b':{'file_name':'_b.txt'}
}
#遍歷文件
for file_info in m:
fd = open(FILE_PATH + pid[file_info][file_name])
file_b = fd.read()
fd.close()
#做一個標記默認為0
#binascii.b2a_hex()函數換成ascii形式
#程序首先運行else段,遇到回車標記改為1,運行if語句,進行判斷是否回車換行在一起。
flag=0
for s in file_b:
asc = binascii.b2a_hex(s)
if flag==1:
if asc=='0a'
flag=0
else:
print "error,only 0d",pid[file_info][file_name]
break;
else:
if asc == '0a':
print "error,only 0a",pid[file_info][file_name]
break
if asc=='20':
print "error,only 20",pid[file_info]['file_name']
break
if asc=='22':
print "error,only 22",pid[file_info]['file_name']
break
if asc=='0d':
flag=1
⑵ 用python語言 如何將test1.txt中一串數字進行crc校驗存入test2.txt中
給你寫幾個。這個本來很簡單的。
importbinascii沒有驗證過是否正確,僅供參考。
importstruct,ctypes
fp1=open('test1.txt','rb')
fp2=open('test2.txt','wb')
c=fp1.read(1)
crc=binascii.crc32(c)
whileTrue:
fp2.write(c)
c=fp1.read(1)
ifnotc:break
crc=binascii.crc32("world",crc)&0xffffffff
fp2.write(struct.pack('l'crc))
fp2.close()
fp1.close()
⑶ 急~~~~~~~~python關於ascii及進制轉換問題,單個字母或符號轉化成二進制或八進制數字,偶是菜鳥~
不太直觀了點
def converter(char, m):
s = eval("%s(ord('%s'))" % (m.lower(), char))
if 'b' in s:
return 'Bin: %s' % (''.join(('%08s' % s.replace('b', '0'))[-8:]))
return 'Oct: %s' % s
⑷ python學習之如何檢測非法字元
#!/usr/bin/python
# -*- coding:utf8 -*-
import binascii
import sys
import os
#定義文件,並檢測多個文件
FILE_PATH = '/Users/wj6/TH'+『001』
#把文件不同的部分做一個字典,方便檢測多個文件,減少重復代碼。
m = {
'a':{'file_name':'_a.txt'}
'b':{'file_name':'_b.txt'}
}
#遍歷文件
for file_info in m:
fd = open(FILE_PATH + pid[file_info][file_name])
file_b = fd.read()
fd.close()
#做一個標記默認為0
#binascii.b2a_hex()函數換成ascii形式
#程序首先運行else段,遇到回車標記改為1,運行if語句,進行判斷是否回車換行在一起。
flag=0
for s in file_b:
asc = binascii.b2a_hex(s)
if flag==1:
if asc=='0a'
flag=0
else:
print "error,only 0d",pid[file_info][file_name]
break;
else:
if asc == '0a':
print "error,only 0a",pid[file_info][file_name]
break
if asc=='20':
print "error,only 20",pid[file_info]['file_name']
break
if asc=='22':
print "error,only 22",pid[file_info]['file_name']
break
if asc=='0d':
flag=1
⑸ 遇到binascii.Error: Incorrect padding 怎麼辦 python
s不符合base64的padding規則。「當原數據長度不是3的整數倍時, 如果最後剩下兩個輸入數據,在編碼結果後加1個「=」;如果最後剩下一個輸入數據,編碼結果後加2個「=」;如果沒有剩下任何數據,就什麼都不要加,這樣才可以保證資料還原的正確性。」(引自維基base64中文條目)
當然,這可能是由於s數據不完整或有其他字元串混入導致的。
wiki:http://en.wikipedia.org/wiki/Base64
⑹ python讀取圖片中的數據再用二進製做位運算後寫入文件
先把字元串轉換成整數,num=int(string)
然後把十進制轉換為二進回制,答num_1 = bin(num)
做完運算以後把二進制轉換為十進制,num = int(num_1, 2)
最後轉換回字元串,string = str(num)
變數名字自己起一個就好
⑺ python中怎麼將一個二進制變成字元
用binascii模塊:
>>> import binascii
>>> binascii.a2b_hex('abcd')
'\xab\xcd'
>>> binascii.a2b_hex("a16203")
'\xa1b\x03'
>>> binascii.b2a_hex('\xa1b\x03')
'a16203'
>>>
⑻ Python中讀取二進制圖片(例如 a.jpg)有關解碼編碼的問題
binascii.hexlify估計能抄滿足你的要求。不過襲不建議把二進制數據用編解碼來處理,因為編解碼只是文本採用了不同的編碼方案。而圖像這些二進制有自己的含義,文本編解碼方案不應該用在這些二進制文件上。s就是你的數據,你也別想看懂,除非你知道jpg格式。