我正在尝试使用appdailysales.py module每天下载我们的iPhone应用程序。我是一名.NET开发人员,因此我尝试在C解决方案中使用IronPython运行此程序,并使用以下代码:
using IronPython.Hosting;
var ipy = Python.CreateRuntime();
dynamic appSales = ipy.UseFile("appdailysales.py");
appSales.main();
因为我没有gzip,所以我去掉了对该模块的引用。我本来打算用GZipStream C#类来解压文件(Apple以.gz文件的形式提供下载)。所以,我注释掉了第75行和第429-435行。在
我试过执行死刑应用程序销售.py在我的C#解决方案中,直接来自IronPython并使用python2.7(昨晚安装了ActivePython);结果都是一样的:当我尝试使用7zip打开.gz文件时,我得到了以下错误:
CRC Failed ... file is broken
使用ipstream获取gzi时尝试:
The CRC in GZip footer does not match the CRC calculated from the decompressed data
如果我手动下载.gz文件,可以使用7Zip或GZipStream解压缩该文件。在
我能流利地使用C,但对Python还是新手。如果您能提供任何帮助,我们将不胜感激。在
谢谢你的时间。在
看来问题出在444号线。以下是444-446行:
在这个阶段,如果您已经删除了第429-435行或选择不解压缩,那么
filebuffer
将引用您从web上获得的原始gzip流。输出文件是以文本模式打开的,并且您是在Windows上,因此二进制gzip流中的每个\n
都将被转换为\r\n
损坏,如错误消息所示。在所以:为了使模块在Windows和其他平台上都能移植使用,开放模式必须是“wb”(b代表二进制)。如果gunzipped结果文件也是二进制文件,则可以在open调用中硬编码“wb”。但是,如果gunzipped文件是一个文本文件(意味着可以在文本编辑器中打开),那么您只需要“w”就可以了,您应该根据需要将变量
mode
设置为“wb”或“w”,并在open调用中使用mode
。在大问题:我理解为什么您删除了使用IronPython的
gzip
引用。你删除了Python2.7的那些行了吗?或者在Python2.7下运行它时,这些行仍然在,但是已经设置好了选项.unzipFile是假的?在相关问题 更多 >
编程相关推荐