Python中sys.stdin无需open读取XML数据的原理及本地测试问询
关于sys.stdin读取XML的说明
sys.stdin是Python的标准输入流,它不需要关联已打开的文件,而是读取终端输入的内容或者通过管道传入的内容。预代码里的sys.stdin.read()会一次性捕获所有输入的XML数据,不管内容是你手动输入的,还是从外部文件导进来的。
测试get_attr_number函数的实操方法
方法1:终端手动输入XML
在PowerShell或VS Code集成终端中:
- 运行你的脚本:
python your_script.py - 直接输入测试用的XML内容,比如:
<feed xml:lang='en'> <title>HackerRank</title> <subtitle lang='en'>Programming challenges</subtitle> <link rel='alternate' type='text/html' href='http://hackerrank.com/'/> <updated>2013-12-25T12:00:00</updated> </feed>
- 输入完成后,按Ctrl+Z(Windows/PowerShell)或Ctrl+D(Linux/macOS)结束输入,脚本就会开始处理XML数据。
方法2:从本地文件导入输入(更高效)
把测试XML存成test.xml文件,然后通过管道传给脚本:
- PowerShell/CMD:
type test.xml | python your_script.py - Linux/macOS终端:
cat test.xml | python your_script.py
这样sys.stdin会直接读取文件里的XML内容,省去手动输入的麻烦。
方法3:VS Code调试时指定输入文件
如果用VS Code调试,可在launch.json中配置自动读取输入文件:
- 打开调试面板,创建
launch.json - 添加如下配置:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "redirectInput": "./test.xml" } ] }
调试运行时,脚本会自动加载test.xml里的内容作为输入。
验证函数的小技巧
比如上面的示例XML,所有节点的属性总数是5(xml:lang、lang、rel、type、href),你可以用这个案例测试函数输出是否正确。
内容的提问来源于stack exchange,提问作者Pedro Lobo
相关产品推荐
相关产品推荐

