opencc-python
opencc-python copied to clipboard
Use sys.stdin/sys.stdout instead of io.open(0/1) for better compatibility
https://github.com/yichen0831/opencc-python/blob/b85452e384a3650109809fe5fefacb2ae4fe89d2/opencc/main.py#L30-L35
Using 0 as a fallback for the input file can lead to a type error since io.open expects a filename. Consider using sys.stdin directly when no input file is provided.
if args.input:
with io.open(args.input, encoding=args.in_enc) as f:
input_str = f.read()
else:
input_str = sys.stdin.read()
output_str = cc.convert(input_str)
if args.output:
with io.open(args.output, 'w', encoding=args.out_enc) as f:
f.write(output_str)
else:
sys.stdout.write(output_str)
or
if args.input:
with io.open(args.input, encoding=args.in_enc) as f:
input_str = f.read()
else:
if sys.version_info[0] >= 3:
input_str = sys.stdin.read()
else:
sys.stdin.read().decode(args.in_enc)
output_str = cc.convert(input_str)
if args.output:
with io.open(args.output, "w", encoding=args.out_enc) as f:
f.write(output_str)
else:
if sys.version_info[0] >= 3:
sys.stdout.write(output_str)
else:
sys.stdout.write(output_str.encode(args.out_enc))