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格式。