运行 通过 python 的 CMD 命令失败
Running a CMD command through python fails
我正在使用 SplitCap 将我的 pcaps 分成会话。但是,鉴于我有数百个,我想写一些东西来为我做这件事。
此 CMD 命令成功运行。
G:\Program Files\Wireshark\PCAP>"G:\Program Files\Wireshark\SplitCap.exe" -r nonvpn-chat-aim-0.pcap -s session -o SplitPCAP
Splitting pcap file into seperate pcap files...
100%
Please wait while closing all file handles...
但是,完全相同的命令在 python 中失败:
>>> arg
['G:/Program Files/Wireshark/SplitCap.exe', '-r', 'G:/Program Files/Wireshark/PCAP/nonvpn-chat-aim-0.pcap', '-s', 'session', '-o', 'SplitPCAP']
>>> subprocess.run(arg)
Splitting pcap file into seperate pcap files...
10%
���� ����� �����: System.NotSupportedException: ����� ����� ������ ���� �����.
�- System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
�- System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
�- System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
我不确定如何从这里开始。这个错误似乎在 C# 中并且在内部查看 subprocess.py
并没有多大帮助...
你可以尝试os执行cmd
os.system()
or
os.popen()
后面的可以通过socket
得到return信息
原来 SplitCap 的文件参数不喜欢我使用它们的方式。解决方案是将 subprocess.run(arg)
更改为 subprocess.run(arg, cwd="'G:/Program Files/Wireshark/SplitCap.exe'"
,然后将 arg
更改为:
['G:/Program Files/Wireshark/SplitCap.exe', '-r', 'nonvpn-chat-aim-0.pcap', '-s', 'session', '-o', 'SplitPCAP']
也就是把-r后面的部分改成排除完整路径。 (还有,将 \
更改为 /
我正在使用 SplitCap 将我的 pcaps 分成会话。但是,鉴于我有数百个,我想写一些东西来为我做这件事。
此 CMD 命令成功运行。
G:\Program Files\Wireshark\PCAP>"G:\Program Files\Wireshark\SplitCap.exe" -r nonvpn-chat-aim-0.pcap -s session -o SplitPCAP
Splitting pcap file into seperate pcap files...
100%
Please wait while closing all file handles...
但是,完全相同的命令在 python 中失败:
>>> arg
['G:/Program Files/Wireshark/SplitCap.exe', '-r', 'G:/Program Files/Wireshark/PCAP/nonvpn-chat-aim-0.pcap', '-s', 'session', '-o', 'SplitPCAP']
>>> subprocess.run(arg)
Splitting pcap file into seperate pcap files...
10%
���� ����� �����: System.NotSupportedException: ����� ����� ������ ���� �����.
�- System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
�- System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
�- System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
我不确定如何从这里开始。这个错误似乎在 C# 中并且在内部查看 subprocess.py
并没有多大帮助...
你可以尝试os执行cmd
os.system()
or
os.popen()
后面的可以通过socket
得到return信息原来 SplitCap 的文件参数不喜欢我使用它们的方式。解决方案是将 subprocess.run(arg)
更改为 subprocess.run(arg, cwd="'G:/Program Files/Wireshark/SplitCap.exe'"
,然后将 arg
更改为:
['G:/Program Files/Wireshark/SplitCap.exe', '-r', 'nonvpn-chat-aim-0.pcap', '-s', 'session', '-o', 'SplitPCAP']
也就是把-r后面的部分改成排除完整路径。 (还有,将 \
更改为 /