小编Ruu*_*uud的帖子

如何使用 Python 安装 XML 解析器

我想使用 etree、expat 或类似的,但我知道 etree 更容易使用。但是,当我已经在 Ubuntu 11.10 上安装了 Python 2.7.2 时,如何安装它?

我可以通过 Google 找到的所有文档都表明,默认情况下 Python 可以使用 xml 解析。或者至少当我搜索 install xml parser python 或类似词的任何组合时,还包括 etree 或 expat 我找不到要采取的步骤(命令行安装方法)。

python

7
推荐指数
1
解决办法
3万
查看次数

从 cron 运行时,Python 脚本不会写入数据

当我在终端中运行 python 脚本时,它会按预期运行;下载文件并将其保存在所需位置。

sudo python script.py    
Run Code Online (Sandbox Code Playgroud)

我已将 python 脚本添加到根 crontab,但随后它按预期运行,除非它不写入文件。

$ sudo crontab -l
> * * * * * python /home/test/script.py >> /var/log/test.log 2>&1
Run Code Online (Sandbox Code Playgroud)

下面是一个仍然存在问题的简化脚本:

#!/usr/bin/python

scheduleUrl = 'http://test.com/schedule.xml'
schedule = '/var/test/schedule.xml'

# Download url and save as filename
def wget(url, filename):
    import urllib2
    try:
        response = urllib2.urlopen(url)
    except Exception:
        import traceback
        logging.exception('generic exception: ' + traceback.format_exc())
    else:
        print('writing:'+filename+';')
        output = open(filename,'wb')
        output.write(response.read())
        output.close()

# Download the schedule
wget(scheduleUrl, schedule)
Run Code Online (Sandbox Code Playgroud)

我确实收到消息“正在写入:文件名;” 在日志中,cron 条目输出到日志中。但实际文件无处可寻......

目录 /var/test 被修改为 777 并且使用任何用户,我都可以随意添加和更改文件。

python scripts

7
推荐指数
1
解决办法
2万
查看次数

守护进程还是 crontab?

我知道我可以创建一个可以在后台运行和执行某些任务的服务。但我实际上只需要执行一个需要每 5 分钟完成一次的任务。它不需要在两者之间运行。

现在我在想,让 crontab 条目每 5 分钟运行一次(python)下载脚本可能是一个更好的主意。我是 Linux 新手,可能对 cron 的用途和好的做法有不正确的理解,但对我来说,这似乎是一种更稳定的方式,因为如果脚本因任何原因停止,它只会重新-跑。

在这种情况下,推荐的方法是什么?一个等待 5 分钟的(行为良好的)守护进程,或者一个运行脚本的 cron,在完成时停止。

cron services

3
推荐指数
1
解决办法
2970
查看次数

标签 统计

python ×2

cron ×1

scripts ×1

services ×1