小编tij*_*jko的帖子

使用python的eval()与ast.literal_eval()?

我有一些代码的情况,eval()作为一种可能的解决方案.现在我从来没有使用eval()过,但是,我已经发现了很多关于它可能造成的潜在危险的信息.也就是说,我对使用它非常谨慎.

我的情况是我有一个用户给出的输入:

datamap = raw_input('Provide some data here: ')
Run Code Online (Sandbox Code Playgroud)

哪里datamap需要是字典.我四处搜索,发现eval()可以解决这个问题.我认为在尝试使用数据之前我可以检查输入的类型,这将是一个可行的安全预防措施.

datamap = eval(raw_input('Provide some data here: ')
if not isinstance(datamap, dict):
    return
Run Code Online (Sandbox Code Playgroud)

我仔细阅读了文档,但我仍然不清楚这是否安全.eval在输入或datamap调用变量后立即评估数据吗?

ast模块是.literal_eval()唯一安全的选择吗?

python eval abstract-syntax-tree

154
推荐指数
6
解决办法
14万
查看次数

使用命令行重定向进程启动后的STDERR/STDOUT?

在shell中你可以进行重定向> <等,但是程序启动后怎么样?

以下是我来问这个问题的方法,在终端后台运行的程序不断输出恼人的文字.这是一个重要的过程,所以我必须打开另一个shell来避免文本.我希望能够>/dev/null或其他一些重定向,所以我可以继续在同一个shell中工作.

linux bash shell

120
推荐指数
5
解决办法
8万
查看次数

在java中将int的流转换为char

这可能已经回答了其他问题,但是如何获得int值的字符值?

具体来说,我正在从tcp流中读取一个,读者.read()方法返回一个int.

我如何从中得到一个字符?

java types

114
推荐指数
5
解决办法
37万
查看次数

用于分析Haskell程序性能的工具

在解决一些项目Euler问题以学习Haskell(所以目前我是一个完全初学者)时,我遇到了问题12.我写了这个(天真的)解决方案:

--Get Number of Divisors of n
numDivs :: Integer -> Integer
numDivs n = toInteger $ length [ x | x<-[2.. ((n `quot` 2)+1)], n `rem` x == 0] + 2

--Generate a List of Triangular Values
triaList :: [Integer]
triaList =  [foldr (+) 0 [1..n] | n <- [1..]]

--The same recursive
triaList2 = go 0 1
  where go cs n = (cs+n):go (cs+n) (n+1)

--Finds the first triangular Value with more than n Divisors
sol …
Run Code Online (Sandbox Code Playgroud)

performance profiling haskell

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

确定处理器的字大小

如何确定CPU的字大小?如果我理解正确,int一个字应该是正确的吗?我不确定我是否正确.

那么打印sizeof(int)是否足以确定我的处理器的字大小?

c processor word-size

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

tkinter app添加右键单击上下文菜单?

我有一个python-tkinter gui应用程序,我一直试图找到一些方法来添加一些功能.我希望有一种方法可以右键单击应用程序列表框区域中的项目并显示上下文菜单.tkinter能够完成这个吗?看看gtk或其他一些gui-toolkit我会更好吗?

python user-interface contextmenu tkinter

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

有没有办法从python中获取数据库的模式?

我试图找到一种方法来查找数据库中的表名称(如果存在).我发现从sqlite cli我可以使用:

>.tables
Run Code Online (Sandbox Code Playgroud)

那么对于字段:

>PRAGMA TABLE_INFO(table_name)
Run Code Online (Sandbox Code Playgroud)

这显然在python中不起作用.有没有办法用python做这个或者我应该只使用sqlite命令行?

python sqlite database-schema

22
推荐指数
3
解决办法
4万
查看次数

如何在 ELB 应用程序负载均衡器上将 HTTPS 重定向到 HTTP

在 Amazon 的“经典负载均衡器”上,您可以创建一条规则将 HTTPS 连接转发到 HTTP,通过将证书上传到负载均衡器并让服务器仅处理 http 来简化 SSL 和服务器配置。

我现在尝试使用亚马逊的新一代“应用程​​序负载均衡器”复制相同的设置,但新的规则系统似乎不允许这样做。

我可以创建一个规则来侦听 HTTPS/443 并重定向,但它只允许我重定向到 HTTPS 或#{protocol}://#{host}:80/#{path}?#{query},这仍然意味着我的服务器必须支持 HTTPS,我想避免这种情况,因为这意味着每个服务器仍然必须包含SSL 证书并具有端口 443 的站点配置。

新一代 ELB 是否不支持此功能,或者是否有其他方法可以配置它?

amazon-elb

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

Python将多个变量分配给相同的列表值?

我正在写一个计算日历日期的函数.在减少线条的同时,我发现我无法将多个变量分配到相同的范围.

Jan, Mar, May, Jul, Aug, Oct, Dec = range(1,32)
Run Code Online (Sandbox Code Playgroud)

是否有一种有效的方法来分配这些值,为什么python会给出ValueError?

python list

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

根据python中的字典值对列表进行排序?

说我有一本字典然后我有一个包含字典键的列表.有没有办法根据字典值对列表进行排序?

我一直在尝试这个:

trial_dict = {'*':4, '-':2, '+':3, '/':5}
trial_list = ['-','-','+','/','+','-','*']
Run Code Online (Sandbox Code Playgroud)

我去用了:

sorted(trial_list, key=trial_dict.values())
Run Code Online (Sandbox Code Playgroud)

得到了:

TypeError: 'list' object is not callable
Run Code Online (Sandbox Code Playgroud)

然后我去创建一个可以调用的函数trial_dict.get():

def sort_help(x):
    if isinstance(x, dict):
        for i in x:
            return x[i]

sorted(trial_list, key=trial_dict.get(sort_help(trial_dict)))
Run Code Online (Sandbox Code Playgroud)

我不认为该sort_help功能对排序有任何影响.我不确定使用trial_dict.get()是否也是正确的方法.

python sorting dictionary list

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