동안이 제대로 GET-항목에 의해 생성 된 결과 객체의 .FullName 속성을 사용하여, 당신이 정말로 파이썬에게 파일의 이름을 전달해야 작동하지만
python mypythonfile.py (get-item .\file*.html)
Windows 셸 (PowerShell 및 CMD)은 glob patterns을 지원하지만 패턴 자체를 확장하지는 않습니다 (Unix 셸과 달리). 대신 globbing을 지원해야하는 명령은 자체적으로 와일드 카드 확장을 구현해야합니다.
import sys
import glob
for arg in glob.glob(sys.args[1]):
print(arg)
예를 들어, 호출 할 때 스크립트가 와일드 카드 인수를 처리 할 수 있습니다 :
파이썬은 대한 glob
모듈을 제공 같은 :
python script.py .\file*.html
그렇지 않으면 당신은 경로의 목록을 당신을 위해 와일드 카드 패턴을 확장하고 반환하는 PowerShell을 cmdlet에, 예를 사용해야합니다 Get-ChildItem
.
$files = Get-ChildItem .\file*.html | Select-Object -Expand FullName
python script.py $files
을하거나 expression에서 PowerShell을 문을 실행 : 어느 변수의 목록을 수집
python script.py (Get-ChildItem .\file*.html | Select-Object -Expand FullName)
또는 당신은 파이썬 스크립트 read from stdin
수 :
import fileinput
for line in fileinput.input():
print(line.replace('\n',''))
와 파이프를 파일 목록을 스크립트에 복사하십시오.
Get-ChildItem .\file*.html | Select-Object -Expand FullName | python script.py
이것이 실제로 파이썬과 관련이 없다고 생각합니다. – Ajean
@Ajean - 파이썬 태그를 추가하지 않아야 할 것 같습니다. 저는이 기능을 처음 접했을 뿐이며 질문의 컨텍스트에 도움이 될 것이라고 생각했습니다. PowerShell에 관한 질문입니다. 파이썬이 아닙니다. – ddetts
아무 문제 없지만, 나는 앞을 내다가 그것을 제거했습니다. 질문의 나머지 부분은 완벽하게 훌륭합니다 (Powershell 사람이 아니기는하지만 대답 할 수는 없지만 ...). – Ajean