如何在Windows cmd中传递像* .txt这样的通配符参数
发布时间:2020-12-14 03:54:15 所属栏目:Windows 来源:网络整理
导读:我的目录树: test/|_____ 1.txt content: 1_line1n1_line2|_____ 2.txt content: 2_line1n2_line2|_____ test_fileinput.py 我的Python脚本: import fileinputimport sysfor line in fileinput.input(sys.argv[1:]): print(fileinput.filename(),fileinp
我的目录树:
test/ |_____ 1.txt content: 1_line1n1_line2 |_____ 2.txt content: 2_line1n2_line2 |_____ test_fileinput.py 我的Python脚本: import fileinput import sys for line in fileinput.input(sys.argv[1:]): print(fileinput.filename(),fileinput.filelineno(),line) 首先我在Linux上尝试过,因为你看它完美无瑕: $python3 test_fileinput.py *.txt 1.txt 1 1_line1 1.txt 2 1_line2 2.txt 1 2_line1 2.txt 2 2_line2 但在Windows上: 当然我可以做python test_fileinput.py 1.txt 2.txt,但我想知道有没有办法在Windows上传递* .txt?谢谢. 解决方法
您可以使用glob模块,它提供了一种独立于平台的通配符匹配方式.例如,glob(‘* .txt’)将返回当前目录中所有txt文件的列表.
import fileinput import sys from glob import glob for line in fileinput.input(glob(sys.argv[1]): print(fileinput.filename(),line) 如果要保留可以指定多个输入的行为(以便执行python test_fileinput.py * .txt * .csv other.md将是有效行为),您可以修改以下代码: import fileinput import sys from glob import glob all_files = [f for files in sys.argv[1:] for f in glob(files)] for line in fileinput.input(all_files): print(fileinput.filename(),line) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- active-directory – 无法在Windows Server 2003 DC上安装A
- active-directory – 使用AD主目录属性来映射主驱动器真的不
- windows-server-2008-r2 – 是否可以创建新的Windows Serve
- installer – WiX – 在主要升级时保留注册表设置
- windows-xp – 错误:“’net’未被识别为内部或外部命令,可
- Windows Server 2016-清理残留域控信息
- windows-server-2012 – 如何通过Windows Server 2012中的终
- Windows 10上安装适用Linux的Windows子系统
- microsoft-graph – ADAL.js和MSAL.js有什么区别?
- windows-server-2012-r2 – 如何查看Windows服务器的活动远