请帮助理解我的错误在哪里。
为了测试我创建的:
但是当我尝试将它与 Python 一起使用时,它没有按预期工作。
Python 代码。超级简单
顺便说一句,在代码运行期间test_INCORRECT_FOLDER将在powershell终端会话中打开
如您所见,我在 python 中使用了 powershell 中的相同命令。 但我得到了完全不同的结果
在Python中,powershell扫描并过滤当前文件夹中的文件。
预期结果: 通过正确的路径正确过滤excel文件test_folder
# Run powershell
import subprocess
import os
os.system("cls")
#Test 1 -----> Static path in powershell
print(f"TEST 1 static path in powershell'\n {'*' * 90} \n RESULT:")
subprocess.run(["powershell", "-Command","Get-ChildItem C:\\test_folder -Filter *.xlsx -Recurse | % { $_.FullName }"])
print("-------------------------")
#Test 2 ----> Static path
test_folder_static = 'C:\\test_folder'
print(f"TEST 2 static path in script \n {'*' * 90} \n RESULT:")
subprocess.run(["powershell", "-Command","Get-ChildItem $test_folder_static -Filter *.xlsx -Recurse | % { $_.FullName }"])
在第二个系统调用中,字符串插值发生在 python 中,而不是 powershell 中。看一下this,将最后一行代码更改为:
subprocess.run(["powershell", "-Command", f"Get-ChildItem '{test_folder_static}' -Filter *.xlsx -Recurse | % {$_.FullName }"])