It looks to me like you want readers
to be a non-string iterable. Maybe try:
devices = map(InputDevice, readers.split(','))
This will split readers
into a list, rather than keeping it as a string.
This still isn't particularly clean code. Better would be to build a list in the first place:
readers = []
devices = map(InputDevice, list_devices())
for dev in devices:
if "深" in dev.name or "Barcode" in dev.name:
readers.append(dev.fn)
devices = map(InputDevice, (readers))