使子进程调用使用生成的文件名

2024-10-02 18:14:43 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个python脚本,它根据时间生成一个文件名。然后我尝试将一些数据cat放入该文件名中。不过,我好像不能把它传进去。在

代码如下:

fileName = "parsedOn_"+strftime("%Y_%m_%d_%H%M%S", gmtime())+".csv"
subprocess.call(['cat' + 'xaa' + '>' + fileName])

以下是我得到的错误:

^{pr2}$

有什么想法,如果我正在尝试做的是可能的子进程?在


Tags: csv数据代码脚本文件名错误时间call
2条回答

您应该考虑使用envoy。在

样品

In [1]: import envoy

In [2]: r = envoy.run("cat requirements.txt")

In [3]: r.std_out
Out[3]:   'Flask==0.8\ngit+git://github.com/kennethreitz/flask-cache.git\nJinja2==2.6\ngit+git://github.com/kennethreitz/werkze ug.git\ndistribute==0.6.24\ngunicorn==0.13.4\nredis==2.4.9\nvanity==1.1.1\nwsgiref==0.1.2\n'

In [4]: print r.std_out
Flask==0.8
git+git://github.com/kennethreitz/flask-cache.git
Jinja2==2.6
git+git://github.com/kennethreitz/werkzeug.git
distribute==0.6.24
gunicorn==0.13.4
redis==2.4.9
vanity==1.1.1
wsgiref==0.1.2

编辑: 使节的主要优点是简单。在

问题在于

subprocess.call(['cat' + 'xaa' + '>' + fileName])

首先,您缺少空格(如果您想使用字符串)或逗号(如果您想使用列表,则首选方法)。其次,>是shell重定向,因此必须在shell中执行这一行,如:

^{pr2}$

但您不应该这样做。相反,请使用Python的本机^{}

shutil.copyfile('xaa', fileName)

相关问题 更多 >