早上好,
我正在编写一个Python脚本来比较两个安装程序。因此我正在使用" sfk" (Swiss File Knife)技术,用于浏览解压缩的目录,包括浏览* .jar文件内部)。
我的脚本如下:
cmd_sfk1 = "sfk list -hidden -arc -time -size -tofile content_dir1.txt " + lv_inst_dir1
cmd_sfk2 = "sfk list -hidden -arc -time -size -tofile content_dir2.txt " + lv_inst_dir2
try:
subprocess.call(cmd_sfk1)
except Exception as ex:
...
try:
subprocess.call(cmd_sfk2)
except Exception as ex:
...
正如您所看到的,结果写在两个文件(content_dir1.txt)和(content_dir2.txt)中,它的想法是简单的文件比较给我两个目录/文件树之间的区别
然而,这不起作用,因为该目录的名称包含在文件中,这里是摘录:
...
2015-09-29 14:04:20 119 Dir1\InstallerData\...\MediaId.properties
2015-09-29 14:00:08 357 Dir1\InstallerData\...\\my.ini
...
" Dir1"在那个文件中弄乱了比较。
我看到一个"简单"解决方案:修改命令的目标目录,如:
cmd_sfk1 = "sfk list -hidden -arc -time -size -tofile ../content_dir1.txt " + "."
cmd_sfk2 = "sfk list -hidden -arc -time -size -tofile ../content_dir2.txt " + "."
try:
subprocess.call(cmd_sfk1, target_directory=lv_inst_dir1)
except Exception as ex:
...
try:
subprocess.call(cmd_sfk2, target_directory=lv_inst_dir2)
except Exception as ex:
...
(有点像" pushd"" popd"在DOS批处理文件中)
目的是最终得到以下content_dir1.txt内容:
...
2015-09-29 14:04:20 119 InstallerData\...\MediaId.properties
2015-09-29 14:00:08 357 InstallerData\...\\my.ini
...
(没有" Dir1")
现在我的问题是:有人知道如何在Python中修改子进程的目标目录吗?
感谢
多米尼克