python - 有人可以解释为什么结果不一样吗?
问题描述
我正在学习 bash 和 Python。所以我尝试用 Bash 和 Python 解决大多数问题。这就是我最终尝试在 Bash 和 Python 中获取字符串长度的方式,而 wc 则返回一个不同的数字。在互联网上搜索以找到答案,但没有找到。
$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | wc -c
31
====
$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | wc -m
31
====
$ string="ensPpaJxUanRSxRzWSqMcLrYZDhkCp"
$ echo ${#string}
30
====
>>> print(len("ensPpaJxUanRSxRzWSqMcLrYZDhkCp"))
30
解决方案
echo 产生一个新行,它被视为一个附加字符,正如@khelwood 评论:
$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | python -c 'import sys; print(list(sys.stdin))'
['ensPpaJxUanRSxRzWSqMcLrYZDhkCp\n']
推荐阅读
- javascript - 循环访问可访问索引和对象的对象数组,并支持继续、中断、返回
- reactjs - React - 将数据从外部 API 传递到 CSV 文件
- php - 实体上的主键 ID 缺失值
- python - 将外键从用户输入传递到数据库
- firebase - 如何在 Firestore 安全规则中正确编写正则表达式验证
- python - 如何在实例级别模拟 Python 属性?
- bash - 无法通过从 bash 调用 perl oneliner 来比较两个版本字符串
- javascript - GTM/GA 和通过检查 GDPR cookie 匿名(或不匿名)
- oracle - 是否可以在存储过程中运行 sqlplus 文件?
- arrays - 将 2 行输入读入 2 个数组