小编jft*_*uga的帖子

设置Python的collections.defaultdict的默认字符串值

我正在使用Python 3.2.3并希望更改默认返回的字符串值:

from collections import defaultdict
d=defaultdict(str)
d["NonExistent"]
Run Code Online (Sandbox Code Playgroud)

返回的值是''.如何更改此设置,以便在找不到密钥时"unknown"返回而不是空字符串?

python collections

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

检测地理集群

我有一个R data.frame包含经度,纬度跨越整个美国地图.当X个条目都在经度为几度且纬度为几度的小地理区域内时,我希望能够检测到这一点,然后让我的程序返回地理边界框的坐标.是否有Python或R CRAN包已经这样做了?如果没有,我将如何确定这些信息?

python r geolocation cran

19
推荐指数
2
解决办法
5115
查看次数

Python 3.2中MAC地址的优雅格式

我正在寻找一个更优雅的解决方案来格式化MAC地址与冒号.我使用的是Python 3.2.也许是一种奇特的清单理解?

s=""
h="00233a990c21"
for i in range(0,12,2):
    s += h[i:i+2] + ":"
s=s[:-1]
print("s=",s)
Run Code Online (Sandbox Code Playgroud)

python

8
推荐指数
2
解决办法
9185
查看次数

使用sqlite3编译Python 3.4

我编译了SQLite3 3.8.6并将其安装到$ {HOME}/opt:

LDFLAGS="-L${HOME}/opt/lib" CFLAGS="-L${HOME}/opt/include" ./configure --prefix=$HOME/opt
make && make install
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试编译Python 3.4.2以使用此版本而不是为整个系统安装的版本.我在这个系统上没有root访问权限.要编译Python,我正在使用:

LDFLAGS="-L${HOME}/opt/lib" CFLAGS="-L${HOME}/opt/include" ./configure --prefix=$HOME/opt
make && make install
Run Code Online (Sandbox Code Playgroud)

如果是SQLite3,我能用我的新版本编译Python 3.3.5,但这些相同的步骤似乎对我来说不适用于3.4.2.

如何编译Python 3.4.2以包含我的版本的SQLite 3.8.6,它位于$ {HOME}/opt?

谢谢.

编辑:它编译和安装好,除了使用较旧的系统版本的sqlite3而不是我自己编译和安装的版本的事实.

python sqlite

6
推荐指数
1
解决办法
6301
查看次数

R图绘制经度和​​纬度点

我有一张美国地图和一张我要绘制的长,拉的列表.一旦我开始工作,我也想切换到"世界"地图.生成地图,但地图上不显示任何点.TSV文件的第一行包含此标头:

LONG{tab}LAT
R似乎正在"流量"表中读取确定.我究竟做错了什么?

library("maps")

traffic = read.table("C:/temp/traffic_10.40.tsv", header=T, sep="\t")
png(filename="C:/temp/usa.png", width=850, height=600, bg="white")
map('state', plot = TRUE, fill = FALSE, col = palette())
title("Destinations")
points(x=traffic$LONG,y=traffic$LAT,col='red',cex=0.75)
dev.off()

编辑

> dput(traffic)
structure(list(LONG = c(47.6218, 32.7942, 34.1121, 40.0068, 47.6218,
33.9553, 33.7629, 40.0068, 39.05, 38.1075, 33.7629, 32.769, 37.3857,
29.4576, 34.1674, 38.8147, 32.7942, 31.1429, 40.3254, 30.3059,
38.2248, 47.6218, 33.9553, 38.1075, 27.1943, 29.4576, 30.5175,
38.5668, 42.6657, 40.2982, 32.7539, 40.6698, 47.6742, 32.7942,
47.6218, 35.8219), LAT = c(-122.35, -96.7653, -118.411, -75.1347,
-122.35, -83.3937, -84.4226, -75.1347, -77.4833, -122.264, -84.4226,
-96.5998, …

maps r latitude-longitude

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

将R县地图覆盖到州地图上

R新手在这里.

如果我第一次使用map('state'),我怎么能使用map('county', ylim=..., xlim=...)但是偏移它像这样:

覆盖

现在,我正在使用imagemagick composite -gravity southwest ...来组合2个PNG文件,但这似乎不太理想.

maps r

4
推荐指数
1
解决办法
1408
查看次数

如何设置标题(用户代理),检索网页,捕获重定向和接受cookie?

import urllib.request
url="http://espn.com"
f = urllib.request.urlopen(url)
contents = f.read().decode('latin-1')
q = f.geturl()
print(q)
Run Code Online (Sandbox Code Playgroud)

此代码将返回http://espn.go.com/,这是我想要的 - 重定向网站URL.看完Python文档,谷歌搜索等,我无法弄清楚如何:

  1. 捕获重定向的网站URL(已经工作)
  2. 在即将发出的请求上更改用户代理
  3. 接受网页可能要发回的任何Cookie

我怎么能在Python 3中做到这一点?如果有一个更好的模块urllib,我很好.

python urllib python-3.x

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

R中的堆积面积图

我在SO上研究了其他类似的问题,但似乎无法使我的数据工作.

我的目标是这个结果:

期望的输出

这是我的数据框:

    Room    Direc   MB
    Alley-10    Rx  1
    Alley-11    Rx  7
    Alley-12    Rx  11
    Alley-10    Tx  23
    Alley-11    Tx  17
    Alley-12    Tx  20

当我跑:

ggplot(tp, aes(x=Room,y=MB)) + geom_area(aes(fill=factor(Direc)))
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

不工作

我怎样才能使这个工作?

r ggplot2

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

如何遍历多个AWS账户?

考虑一个拥有 50 多个账户的 AWS 组织。每个账户都创建了一个角色,允许对 EC2 服务进行只读访问(名为“EC2ReadAccess”),并与主(/管理)账户建立信任关系。主账户中的单个 IAM 用户应用了一个策略,允许其在每个账户中担任该角色。

我希望能够使用唯一的 IAM 用户迭代所有帐户,以便检索所有 EC2 实例。我知道同时对所有帐户运行 CLI 命令是不可能的。撇开循环遍历每个账户中的区域不谈,这已经被广泛讨论了是否有一个优雅的解决方案来做到这一点?

我想到的一个技巧是以编程方式构建文件credentials,以便它包含每个帐户的配置文件。每个配置文件依次“链接”到 IAM 用户的配置文件(如此处所述,并为每个条目更新角色内的账户 ID。下面是一个例子:

[user1]
aws_access_key_id=<key_id>
aws_secret_access_key=<secret_key>

[marketing]
role_arn = arn:aws:iam::123456789012:role/EC2ReadAccess
source_profile = user1
[dev]
role_arn = arn:aws:iam::234567890123:role/EC2ReadAccess
source_profile = user1
...
[prod]
role_arn = arn:aws:iam::345678901234:role/EC2ReadAccess
source_profile = user1
Run Code Online (Sandbox Code Playgroud)

运行 CLI 命令(在本例中aws ec2 describe-instances)可以附带--profile参数,以便循环显示credentials文件中存在的所有配置文件。该区域可以在另一个循环中循环。因此,预先以编程方式生成的要发出的命令列表可能类似于:

aws ec2 describe-instances --profile marketing --region us-east-1
aws ec2 describe-instances --profile marketing --region us-east-2
... …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services

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

正则表达式来解析日志文件

我有一个SonicWall syslog文件,格式如下:

<134>id=firewall sn=C0EAE470F7D0 time="2014-08-13 04:31:27" fw=10.2.3.4 pri=6 c=1024 m=537 msg="Connection Closed" n=301541 src=172.16.1.43:50581:X0 dst=172.16.1.1:192:X0 proto=udp/192 sent=46
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个正则表达式,它将返回在=符号上拆分的元组列表.如果值包含空格,则它将具有双引号.我不关心返回的值是否返回引号,只要返回带有空格的整个值.例如,我希望时间键包含日期和时间.期望的输出:

("<134>id","firewall"), ("sn","C0EAE470F7D0"), ("time", '"2014-08-13 04:31:27"')
("fw","1.2.3.4"), ("pri","6"), ... ("msg", '"Connection Closed"'), ("n", "301541")
("src","172.16.1.43:50581:X0"), ... ("sent", "46")
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所遇到的,但遇到带双引号的字段时失败.此外,不返回在这种情况下"发送"的最后一个字段.我已经尝试了RE几个小时尝试各种组合,但只是不能让它工作.任何帮助将不胜感激.

import re
fname = "syslog.log"
with open(fname) as fp: lines = fp.read().splitlines()
q = re.compile('(.*?)=(.*?)[\s"]',re.S|re.M)
for line in lines:
    print(line)
    key_val = q.findall(line)
    print(key_val)
Run Code Online (Sandbox Code Playgroud)

这是此代码返回的内容:

[('<134>id', 'firewall'), ('sn', 'C0EAE470F7D0'), ('time', ''), 
('2014-08-13 04:31:27" fw', '10.2.3.4'), ('pri', '6'),
('c', '1024'), ('m', '537'), ('msg', ''), 
('Connection …
Run Code Online (Sandbox Code Playgroud)

python regex

0
推荐指数
1
解决办法
4850
查看次数

Python 3:返回列表列表中最长的项目

如果我有这些数据:

a = [['a', 'b', 'b', 'v', 'd'], 
     ['d', 'f', 'g'], ['q', 'w', 'e', 'r', 't', 'y'], 
     ['x', '123', 'v', 'b'], ['g', 'h', 'i']]
Run Code Online (Sandbox Code Playgroud)

我想运行一个函数(最好是单行),它将返回列表列表中123具有最长字符串长度的函数.我怎样才能做到这一点?

我唯一看到的是在列表列表中找到最长的列表,所以这是一个稍微不同的问题.

python lambda python-3.x

-5
推荐指数
1
解决办法
768
查看次数