小编B.M*_*.W.的帖子

如何打开文件夹中的每个文件?

我有一个python脚本parse.py,它在脚本中打开一个文件,比如file1,然后做一些事情可能会打印出总字符数.

filename = 'file1'
f = open(filename, 'r')
content = f.read()
print filename, len(content)
Run Code Online (Sandbox Code Playgroud)

现在,我使用stdout将结果定向到我的输出文件 - 输出

python parse.py >> output
Run Code Online (Sandbox Code Playgroud)

但是,我不想手动执行此文件,有没有办法自动处理每个文件?喜欢

ls | awk '{print}' | python parse.py >> output 
Run Code Online (Sandbox Code Playgroud)

那么问题是如何从standardin读取文件名?或者已经有一些内置函数可以轻松完成ls和那些工作?

谢谢!

python stdin stdout file pipe

124
推荐指数
4
解决办法
34万
查看次数

Spark Kill运行应用程序

我有一个正在运行的Spark应用程序,它占用了我的其他应用程序不会分配任何资源的所有核心.

我做了一些快速的研究,人们建议使用YARN kill或/ bin/spark-class来杀死命令.但是,我使用CDH版本和/ bin/spark-class甚至根本不存在,YARN kill应用程序也不起作用.

在此输入图像描述

任何人都可以和我一起吗?

hadoop-yarn apache-spark pyspark

86
推荐指数
3
解决办法
12万
查看次数

dplyr总结了熊猫中的等价物

我曾经和R一起工作,真的很喜欢你可以轻松分组并总结的dplyr软件包.

但是,在pandas中,我没有看到相当的总结,这是我在Python中实现它的方式:

import pandas as pd
data = pd.DataFrame(
    {'col1':[1,1,1,1,1,2,2,2,2,2],
    'col2':[1,2,3,4,5,6,7,8,9,0],
     'col3':[-1,-2,-3,-4,-5,-6,-7,-8,-9,0]
    }
)
result = []
for k,v in data.groupby('col1'):
    result.append([k, max(v['col2']), min(v['col3'])])
print pd.DataFrame(result, columns=['col1', 'col2_agg', 'col3_agg'])
Run Code Online (Sandbox Code Playgroud)

它不仅非常冗长,而且可能不是最优化和最有效的.(我曾经重写过一个dplyr实现for-loop groupby,性能提升很大).

在R中代码将是

data %>% groupby(col1) %>% summarize(col2_agg=max(col2), col3_agg=min(col3))
Run Code Online (Sandbox Code Playgroud)

在Python或for循环中是否有一个有效的等价物是我必须使用的.


另外,@ ahan真的给了我答案的解决方案,这是一个后续问题,我将在这里列出而不是评论:

什么是相当于 groupby.agg

python r pandas summarize pandas-groupby

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

如何使用不同的退出IP一次运行多个Tor进程?

我是Tor的新手,我觉得应该考虑多个Tors.我在这里提到的多个实例不仅是多个实例,而且还为每个实例使用不同的代理端口,就像这里所做的那样 http://www.howtoforge.com/ultimate-security-proxy-with-tor)

我正在努力开始使用4个Tors.但是,本教程仅适用于Arch Linux,而我使用的是无头EC2 ubuntu 64位.通过Arch和Ubuntu之间的差异真的很痛苦.在这里,我想知道是否有人可以提供一些帮助,以明确地实现我的想法.

  1. 四个Tors同时运行,每个都有一个单独的端口,privoxy或polipo或一旦它工作正常.喜欢:8118 < - Privoxy < - TOR < - 9050 8129 < - Privoxy < - TOR < - 9150 8230 < - Privoxy < - TOR < - 9250 8321 < - Privoxy < - TOR < - 9350

  2. 这样,如果我尝试返回127.0.0.1:8118,8129,8230和8321的ip,它们应该返回四个不同的ips,这表示有四个不同的Tors同时运行.然后,几分钟后,再次检查,他们四个应该再次有一个新的ips.

我知道我的简单"梦想"可以在很多方面实现,但是......我不仅是Tor的新手,而且也是bash和python的新手...这就是为什么我来到这里看看你们中的一些人是否可以点亮我起来

这些链接可能很有用:

http://blog.databigbang.com/distributed-scraping-with-multiple-tor-circuits/ https://www.torservers.net/wiki/setup/server#multiple_tor_processes Best,

顺便说一句,如果我跑, $ ps -A | grep 'tor' 我有几个实例,但有"?" 在tty栏下,这意味着什么,因为我知道tty意味着终端?

linux proxy screen-scraping tor socks

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

grep + A:匹配后打印所有内容

嗨,我有一个文件包含网址列表,如下所示:

文件1:

http://www.google.com
http://www.bing.com
http://www.yahoo.com
http://www.baidu.com
http://www.yandex.com
....
Run Code Online (Sandbox Code Playgroud)

我希望获得以下所有记录:http://www.yahoo.com,结果如下所示:

文件2:

http://www.baidu.com
http://www.yandex.com
....
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用grep来查找yahoo.com所使用的行号

$grep -n 'http://www.yahoo.com' file1
3 http://www.yahoo.com
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何在第3行之后获取文件.另外,我知道grep中有一个标志 - 在匹配后打印行.但是,您需要在匹配后指定所需的行数.我想知道是否有什么可以解决这个问题.喜欢:

PSEUDO CODE:
$ grep -n 'http://www.yahoo.com' -A all file1 > file2 
Run Code Online (Sandbox Code Playgroud)

我知道我们可以使用我得到的行号和wc -l来获取yahoo.com之后的行数,但是感觉非常蹩脚.

期待一个方便易用的解决方案.请尽量批评我在开始时将问题复杂化,同时也欢迎使用awk和sed命令!

bash awk grep sed

31
推荐指数
3
解决办法
5万
查看次数

使用R构建RESTful API

我正在考虑使用编程语言R构建RESTful API ,主要是以API格式向用户公开我的机器学习模型.我知道有一些选项可以导出到PMML,PFA并使用其他语言来处理API部分.但是,我想坚持使用相同的编程语言,并想知道R中是否有类似Flask/Django/Springbook框架的东西?

我看了一下servr/shiny,但我真的不认为RESTful是他们的设计目标.R中有更好的解决方案,更容易使用吗?

api rest r plumber

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

Scrapy Python设置用户代理

我试图通过向项目配置文件添加额外的行来覆盖我的crawlspider的用户代理.这是代码:

[settings]
default = myproject.settings
USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"


[deploy]
#url = http://localhost:6800/
project = myproject
Run Code Online (Sandbox Code Playgroud)

但是当我对自己的网络运行爬虫时,我注意到蜘蛛没有拿起我的自定义用户代理,而是默认的"Scrapy/0.18.2(+ http://scrapy.org)".任何人都可以解释我做错了什么.

注意:

(1).它在我尝试全局覆盖用户代理时起作用:

scrapy crawl myproject.com -o output.csv -t csv -s USER_AGENT="Mozilla...."
Run Code Online (Sandbox Code Playgroud)

(2).当我从配置文件中删除"default = myproject.setting"行并运行scrapy crawl myproject.com时,它说"找不到蜘蛛......",所以我觉得在这种情况下不应该删除默认设置.

非常感谢您的帮助.

python user-agent screen-scraping web-crawler scrapy

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

主机进程列表中显示的Docker进程

我正在使用docker建立一个Selenium服务器,基本上遵循这个 github教程.

我没有设置服务器的问题,但我注意到我在docker镜像中启动的进程实际上显示在我的主机进程列表中.

在此输入图像描述

正如您在屏幕截图中看到的那样,docker运行了一个bash脚本并执行了一个jar文件,我认为该文件应该只发生在框内.这是否意味着来自主机的用户可能会杀死容器外的某个进程,这会完全搞砸盒子里面的世界?

当我停下容器时,所有进程都按照我的预期消失了.

这是Docker的设计方式..而且有缺陷的隔离是你在交易中必须接受的轻量级与Virtualbox/Vagrant相比......或者我做错了什么?

谢谢!

virtual-machine docker

24
推荐指数
2
解决办法
9110
查看次数

Crontab命令分隔行

我有两个python脚本:

#1. getUrl.py # used to collect target urls which takes about 10 mins and used as the input for the next script
#2. monitoring.py # used to monitoring the website.

00 01 * * * /usr/bin/python /ephemeral/monitoring/getUrl.py > /ephemeral/monitoring/input && /usr/bin/python /ephemeral/monitoring/monitoring.py >> /ephemeral/monitoring/output
Run Code Online (Sandbox Code Playgroud)

我把这个命令放在crontab中,想知道我怎么能把那个长命令写成两三行.类似下面的python行分隔符示例,但对于Crontab命令,所以它更具可读性:

>>> print \
... 'hel\
... llo'
helllo
Run Code Online (Sandbox Code Playgroud)

linux shell cron

22
推荐指数
1
解决办法
8131
查看次数

Scrapy非常基本的例子

嗨我在我的Mac上安装了Python Scrapy,我试图在他们的网站上关注第一个例子.

他们试图运行命令:

scrapy crawl mininova.org -o scraped_data.json -t json
Run Code Online (Sandbox Code Playgroud)

我不太明白这是什么意思?看起来scrapy原来是一个单独的程序.而且我认为他们没有一个名为crawl的命令.在示例中,它们有一段代码,它是MininovaSpider类和TorrentItem的定义.我不知道这两个类应该去哪里,转到同一个文件,这个python文件的名称是什么?

python scrapy web-scraping

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