怎么用一个 py 文件来执行其他多个 py 文件,谢谢。

2016-06-15 13:00:13 +08:00
 Neagle
我新学习 Python ,看了两个爬虫框架,觉得对我来说太重了,也不利于继续学习基础的知识,于是准备自己先写着。
1 、我封装好基本的 requests 库和写入数据库的文件,已完成。
2 、有 a,b,c,d....需要爬取的网站, 我个每个网站写一个爬取文件 a.pyb.py 每个都能单独的很好运行, 从列表读取待爬取的 url ,然后存入 redis 做队列,接着从 redis 获取 url ,爬取的文档页面内容 存入 mongodb 。已完成。

但问题是, 我每次都要逐个去运行 a.py b.py c.py.... 能不能一起运行呢?谢谢。
7668 次点击
所在节点    Python
9 条回复
JhZ7z587cYROBgVQ
2016-06-15 13:04:18 +08:00
map(lambda name: os.popen('python {}.py').format(name), ['a', 'b', 'c']) 这样子?感觉比较挫,坐等楼下的好办法
just4test
2016-06-15 13:06:37 +08:00
import os
os.system('a.py')
os.system('b.py')


为什么不用配置文件呢?
a.py a.config b.config c.config 。。。。。。。
Neagle
2016-06-15 13:11:32 +08:00
@just4test 非常感谢,主要是不会用配置文件啊,我刚啃完 Python 学习手册,没见着这部分内容。 汗...
fohnwind
2016-06-15 14:14:36 +08:00
@Neagle parseconfig 这个库
maowu
2016-06-15 23:58:19 +08:00
用__import__()这个函数如何?把每个爬取文件作为库动态导入。
ryanking8215
2016-06-16 12:45:51 +08:00
难道不是 a.py, b.py, c.py 使用 `if name==__main__'作为独立运行,再有个`all.py` import a, b, c , 调用模块接口吗?
ZoomQuiet
2016-06-16 15:06:48 +08:00
import them all as one work line
or just usage bash
Neagle
2016-06-16 22:48:40 +08:00
@ryanking8215 非常感谢,麻烦再说详细点,新手,还有点看不懂,谢谢。
ryanking8215
2016-06-17 09:08:34 +08:00
@Neagle 假设`a.py`里有`crawl_v2ex()`的函数, 有`if __name__=='__main__': crawl_v2ex()`,表示`a.py`文件单独运行时执行的内容。 也可以有`all.py`文件,里面`import a`, 然后就可以调用`a.crawl_v2ex()`,同理可用于 b 和 c 。


最简单的还是用 sh 写个脚本,不就都跑起来了。

#!/bin/sh

python a.py
python b.py
python c.py

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/285881

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX