蟒蛇不提取zip文件

蟒蛇不提取zip文件

问题描述:

#!/usr/bin/python 
import requests, zipfile, StringIO, sys 
extractDir = "myfolder" 
zip_file_url = "download url" 
response = requests.get(zip_file_url) 
zipDocument = zipfile.ZipFile(StringIO.StringIO(response.content)) 
zipinfos = zipDocument.infolist() 
for zipinfo in zipinfos: 
    extrat = zipDocument.extract(zipinfo,path=extractDir) 

系统配置蟒蛇不提取zip文件

  1. Ubuntu的OS 16.04
  2. 的Python 2.7.12

$ python extract.py 当我运行与终端代码上面的命令,它可以正常工作并创建文件夹并将文件解压缩到该文件夹​​中。

同样,当我使用sodu权限创建cron作业时,代码将执行但不会创建任何文件夹或提取文件。

crontab命令: -

40 10 * * * /usr/bin/sudo /usr/bin/python /home/ubuntu/demo/directory.py > /home/ubuntu/demo/logmyshit.log 2>&1 

也试过

40 10 * * * /usr/bin/python /home/ubuntu/demo/directory.py > /home/ubuntu/demo/logmyshit.log 2>&1 

注:

  1. 我检查系统日志,它说,cron是成功运行
  2. 上面的代码没有错误
  3. 也使python程序可执行的chmod + x filename.py

请帮我在哪里出错。

+0

cron作业是否正确地写入到你的'logmyshit.log'文件中? – lxop

+1

你为什么试图用'sudo'运行这个?你确定你写的日志文件没有错误吗? – tripleee

+0

你的'logmyshit.log'文件的内容和日期是什么? – user803422

Oups里面,没有什么真的错了运行在crontab中一个Python脚本,但很多不好的事情都可能发生,因为环境是不是你来的人。

当您键入交互式shell python directory.py时,PATH和所有必需的PYTHON环境变量已被设置为登录和交互式shell初始化的一部分,当前目录默认为您的主目录或您当前所在的任何位置。

当从crontab运行相同的命令时,当前目录未指定(但可能不是您所期望的),PATH仅为/bin:/usr/bin并且未设置python环境变量。这意味着你必须调整crontab文件中的环境变量,直到你获得了正确的Python环境,并设置当前目录。

+0

你的建议**设置当前directroy **为我工作 我刚刚添加'os.chdir(路径)'在我的目录被创建并解决了我的问题。 谢谢大家。 –

+0

@JayeshPatil:如果您在这里不再需要帮助,您应该将其中一个答案标记为* accepted *。 –

我有一个非常类似的问题,事实证明,cron不喜欢导入matplotlib,我最终不得不指定Agg后端。我想通过在每一行之后放置日志语句来看看程序在被删除之前得到了多少。当然,我的日志是空的,这让我感到震惊,因为它导致进口崩溃。

TLDR:记录每行的脚本

+0

不过,您建议的修补程序对于matplotlib非常具体。 OP仅使用“请求”之外的系统库,而不需要GUI。 – tripleee

+1

我想我的观点是记录每一行,希望能够看到它的突破点。我的赌注是一些奇怪的cron系统路径行为与进口。 – Fraxr

+0

@Fraxr我也试过你的方法,打印我的代码的每一行仍然没有错误 –