【发布时间】:2021-09-26 15:47:21
【问题描述】:
我正在使用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 并没有太大帮助...
【问题讨论】:
-
您是否从与使用 shell 时相同的当前工作目录运行 python?即
G:\Program Files\Wireshark\PCAP>。在python中运行import os; print(os.getcwd()) -
也可能是路径问题。当您在命令行应用程序中使用当前工作目录时,您正在输入一个 unix 样式的目录字符串。可能值得尝试这个参数:
r'G:\Program Files\Wireshark\PCAP\nonvpn-chat-aim-0.pcap' -
我没有从同一个目录运行,我尝试这样做: subprocess.run(arg, cwd="G:\....") 没有成功。此外,如果您注意到错误消息 - 它显示正在拆分 pcap 文件 - 这意味着实际的 SplitCap.exe 开始运行,不是吗?