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