如何在Python3中将字符串按空格拆分,但引号内内容作为单个元素?
解决方案:用
shlex模块处理带引号的命令行参数拆分 这问题我之前做简易控制台工具时也碰到过!别费劲自己写正则或者字符串切割了,Python标准库的shlex模块就是专门干这个的,能完美处理带引号的参数拆分,完全符合你要的效果。
直接上手用的示例代码
import shlex # 模拟控制台交互读取用户输入 user_command = input("请输入命令:") args = shlex.split(user_command) print("拆分后的参数列表:", args)
测试几个典型场景:
- 输入
mkdir dir,输出:['mkdir', 'dir'] - 输入
mkdir "New Folder",输出:['mkdir', 'New Folder'] - 输入
touch 'file with spaces.txt',输出:['touch', 'file with spaces.txt'] - 输入
echo "He said \"Hello\"",输出:['echo', 'He said "Hello"'](自动处理转义的引号)
为什么推荐shlex而不是自己实现?
自己写字符串切割很容易遗漏各种边界情况:比如转义字符、单双引号混用、引号内的空格等等,shlex模块是Python官方维护的工具,已经处理了所有常见的命令行参数解析场景,稳定性和可靠性都比手写代码高得多。
内容的提问来源于stack exchange,提问作者UltraMario
相关产品推荐
相关产品推荐

