如何向Python文件传递字符串并在终端显示,及解决终端交互时的Unicode编码错误问题
搞定你的两个Python命令行字符串处理需求
嘿,我来帮你解决这两个问题,顺便把你遇到的编码错误也搞定!
一、向Python脚本传递字符串并在终端显示
这个用Python的sys.argv就能轻松实现,它是专门用来获取命令行参数的列表。具体步骤如下:
- 写好你的
main.py代码:
import sys # 记得sys.argv[0]是脚本本身的文件名,所以第一个参数是sys.argv[1] if len(sys.argv) > 1: # 获取传递的字符串 passed_str = sys.argv[1] print(f"你传递的字符串是:{passed_str}") else: print("提示:请在命令后跟上要传递的字符串哦!")
- 在终端运行脚本(以Windows PowerShell为例):
python .\main.py "Hello, Python!"
运行后终端就会显示你传入的字符串啦。
二、从终端获取字符串转小写显示(解决编码错误)
你遇到的UnicodeEncodeError是因为Windows终端默认的编码(比如你这里的cp1256)和Python标准输出的编码不匹配,导致某些字符无法正常输出。下面给你两种解决方案,同时实现转小写的功能:
方案1:在代码中指定输出编码
直接在脚本里把标准输出的编码设置为UTF-8,这样就能支持绝大多数字符:
import sys # 重新配置标准输出为UTF-8编码 sys.stdout.reconfigure(encoding='utf-8') if len(sys.argv) > 1: input_str = sys.argv[1] # 转换为小写 lower_case_str = input_str.lower() print(f"转换为小写后的结果:{lower_case_str}") else: print("请传入需要转换的字符串参数!")
方案2:修改终端的编码(无需改代码)
如果你不想调整代码,可以先在终端里切换编码为UTF-8,再运行脚本:
# 先执行这条命令切换终端编码为UTF-8 chcp 65001 # 再运行你的脚本 python .\main.py "Hi 测试一下"
测试你的示例
用修改后的代码运行你原来的命令:
python .\main.py "Hi"
会输出:转换为小写后的结果: hi,完全没问题~
内容的提问来源于stack exchange,提问作者miladjurablu
相关产品推荐
相关产品推荐

