In Python 3.4 , you no longer have deletechars param , instead you can pass a dictionary of mappings to str.translate()
, and for all elements that you want to delete, you can use empty string ''
as the value. In your case, the code would become -
from itertools import zip_longest
textchars = bytearray([0,7,8,9,10,12,13,27]) + bytearray(range(0x20, 0x100))
textdict = dict(zip_longest(textchars,[''],fillvalue=''))
is_binary_string = lambda data: bool(data.translate(textdict))
The above code would assign empty string to all elements in textchars
, since that is what you want as well.
Example/Demo -
>>> textchars = bytearray([0,7,8,9,10,12,13,27]) + bytearray(range(0x20, 0x100))
>>> from itertools import zip_longest
>>> textdict = dict(zip_longest(textchars,[''],fillvalue=''))
>>> pprint.pprint(textdict)
{0: '',
7: '',
8: '',
9: '',
10: '',
12: '',
13: '',
27: '',
32: '',
33: '',
34: '',
35: '',
36: '',
37: '',
38: '',
39: '',
40: '',
41: '',
42: '',
43: '',
44: '',
45: '',
46: '',
47: '',
48: '',
49: '',
50: '',
51: '',
52: '',
53: '',
54: '',
55: '',
56: '',
57: '',
58: '',
59: '',
60: '',
61: '',
62: '',
63: '',
64: '',
65: '',
66: '',
67: '',
68: '',
69: '',
70: '',
71: '',
72: '',
73: '',
74: '',
75: '',
76: '',
77: '',
78: '',
79: '',
80: '',
81: '',
82: '',
83: '',
84: '',
85: '',
86: '',
87: '',
88: '',
89: '',
90: '',
91: '',
92: '',
93: '',
94: '',
95: '',
96: '',
97: '',
98: '',
99: '',
100: '',
101: '',
102: '',
103: '',
104: '',
105: '',
106: '',
107: '',
108: '',
109: '',
110: '',
111: '',
112: '',
113: '',
114: '',
115: '',
116: '',
117: '',
118: '',
119: '',
120: '',
121: '',
122: '',
123: '',
124: '',
125: '',
126: '',
127: '',
128: '',
129: '',
130: '',
131: '',
132: '',
133: '',
134: '',
135: '',
136: '',
137: '',
138: '',
139: '',
140: '',
141: '',
142: '',
143: '',
144: '',
145: '',
146: '',
147: '',
148: '',
149: '',
150: '',
151: '',
152: '',
153: '',
154: '',
155: '',
156: '',
157: '',
158: '',
159: '',
160: '',
161: '',
162: '',
163: '',
164: '',
165: '',
166: '',
167: '',
168: '',
169: '',
170: '',
171: '',
172: '',
173: '',
174: '',
175: '',
176: '',
177: '',
178: '',
179: '',
180: '',
181: '',
182: '',
183: '',
184: '',
185: '',
186: '',
187: '',
188: '',
189: '',
190: '',
191: '',
192: '',
193: '',
194: '',
195: '',
196: '',
197: '',
198: '',
199: '',
200: '',
201: '',
202: '',
203: '',
204: '',
205: '',
206: '',
207: '',
208: '',
209: '',
210: '',
211: '',
212: '',
213: '',
214: '',
215: '',
216: '',
217: '',
218: '',
219: '',
220: '',
221: '',
222: '',
223: '',
224: '',
225: '',
226: '',
227: '',
228: '',
229: '',
230: '',
231: '',
232: '',
233: '',
234: '',
235: '',
236: '',
237: '',
238: '',
239: '',
240: '',
241: '',
242: '',
243: '',
244: '',
245: '',
246: '',
247: '',
248: '',
249: '',
250: '',
251: '',
252: '',
253: '',
254: '',
255: ''}
>>> 'abcdef'.translate(textdict)
''
If data is a byte-string, then you can still use the previous code from `Python 2.x here - Example -
>>> textchars = bytearray([0,7,8,9,10,12,13,27]) + bytearray(range(0x20, 0x100))
>>> b'abcdefasdas'.translate(None,textchars)
b''