0
我試圖運行在Python在Windows PowerShell命令:PowerShell的生成的文本文件中的零件拆分線(S)
import subprocess, os, sys
subprocess.check_call(['powershell.exe', 'Get-ItemProperty HKLM:/Software/Wow6432Node/Microsoft/Windows/CurrentVersion/Uninstall/* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate, InstallLocation > "C:/Program Files/softwarelist.txt"'])
然而,在sys.stdout.write()
-ing用UTF-16編碼所創建的文件(否則它具有空間和兼容性問題所有的地方),我招呼着以下幾點:
DisplayName : Adobe Flash Player 26 NPAPI
DisplayVersion : 26.0.0.137
Publisher : Adobe Systems Incorporated
InstallDate :
InstallLocation :
DisplayName : Adobe Flash Player 26 PPAPI
DisplayVersion : 26.0.0.137
Publisher : Adobe Systems Incorporated
InstallDate :
InstallLocation :
DisplayName : Agenda At Once 3.3.3
DisplayVersion : 3.3.3
Publisher : Dataland Software
InstallDate : 20161106
InstallLocation : E:\Applications for Work\PIM and Projects\Agenda at Once
PIM\Agenda at Once Components\Agenda At Once\
一切都是因爲我希望它是,除了一兩件事:去年InstallLocation
串被分成兩個行(在「PIM」)在文本文件中。
有沒有辦法避免這種情況發生?
我會在PowerShell中使用'Export-Csv'來寫入文件,並使用Python中的'csv'模塊來讀取結果。 – TessellatingHeckler
爲什麼你使用Python(腳本)來調用另一種腳本語言?在一個語言實現的一切,讓生活在自己 – TheIncorrigible1
我[TheIncorrigible1]同意更容易(https://stackoverflow.com/users/8188846/theincorrigible1),無論如何,請嘗試使用'' - 加入「'r'n」''使其成爲一個單一的字符串而不是數組:''subprocess.check_call(['powershell.exe','(Get-ItemProperty HKLM:/ Software/Wow6432Node/Microsoft/Windows/CurrentVersion/Uninstall/* | Select-Object DisplayName ,DisplayVersion,出版社,InstallDate,INSTALLLOCATION) - 加入 「'r'n」> 「C:/ Program Files文件/ softwarelist.txt」'])'' – iRon