Python-PowerShell-(filter\include)未按预期工作

fnatzsnv  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(100)

请帮助理解我的错误在哪里。
我创造的考验:
1.test_INCORRECT_FOLDER,其中1个excel文件不应被dsplay
1.test_folder内有2个excel文件(1.xlsx和2.xlsx)

  1. test_folder中的sub_folder,其中有2个excel文件(3.xlsx和4.xlsx)。
    使用shell命令我们可以得到内容No any issues with powershell itself. everything as expected
    但是当我尝试在Python中使用它时,它并没有像预期的那样工作。
    Python代码。超级简单
    顺便说一句,在代码运行期间test_INCORRECT_FOLDER将在powershell\terminal会话中打开
    首先,结构:FILE Structure (UPDATED)
    Python code and results
    如你所见,我在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 }"])
quhf5bfb

quhf5bfb1#

在第二个系统调用中,字符串插值发生在python而不是powershell中。看看this,并将最后一行代码改为:

subprocess.run(["powershell", "-Command", f"Get-ChildItem '{test_folder_static}' -Filter *.xlsx -Recurse | % {$_.FullName }"])

相关问题