小编Gar*_*eld的帖子

urllib.quote()抛出KeyError

为了对URI进行编码,我使用urllib.quote("schönefeld")但是当字符串中存在一些非ascii字符时,它就是Thorws

KeyError: u'\xe9'
Code: return ''.join(map(quoter, s))
Run Code Online (Sandbox Code Playgroud)

我的输入字符串köln, brønshøj, schönefeld等.

当我尝试在Windows中打印语句时(使用python2.7,pyscripter IDE).但是在linux中它会引发异常(我猜平台并不重要).

这就是我想要的:

from commands import getstatusoutput
queryParams = "schönefeld";
cmdString = "http://baseurl" + quote(queryParams)
print getstatusoutput(cmdString)
Run Code Online (Sandbox Code Playgroud)

探索问题的原因:urllib.quote(),其实在异常被肆意return ''.join(map(quoter, s)).

urllib中的代码是:

def quote(s, safe='/'):
    if not s:
        if s is None:
            raise TypeError('None object cannot be quoted')
        return s
     cachekey = (safe, always_safe)
     try:
         (quoter, safe) = _safe_quoters[cachekey]
     except KeyError:
         safe_map = _safe_map.copy()
         safe_map.update([(c, c) for c in safe])
         quoter = …
Run Code Online (Sandbox Code Playgroud)

python unicode urllib urlencode urllib2

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

如何将24小时时间转换为12小时时间?

我有以下24小时时间:

{'Wed': '10:30 - 21:00', 'Sun': '10:30 - 21:00', 'Thu': '10:30 - 21:00', 
 'Mon': '10:30 - 21:00', 'Fri': '10:30 - 22:00', 'Tue': '10:30 - 21:00', 
 'Sat': '10:30 - 22:00'}
Run Code Online (Sandbox Code Playgroud)

如何将其转换为12小时?

{'Wed': '10:30 AM - 09:00 PM', 'Sun': '10:30 AM - 09:00 PM', 
 'Thu': '10:30 AM - 09:00 PM', 'Mon': '10:30 AM - 09:00 PM', 
 'Fri': '10:30 AM- 10:00 PM', 'Tue': '10:30 AM- 09:00 PM', 
 'Sat': '10:30 AM - 11:00 PM'}
Run Code Online (Sandbox Code Playgroud)

我想智能转换"10.30""10.30 AM"&"22:30""10:30 PM" …

python datetime string-formatting python-2.7 python-3.x

36
推荐指数
4
解决办法
5万
查看次数

启动完全独立的流程

我想从我的python脚本启动一个进程main.py,特别是我想运行下面的命令

`nohup python ./myfile.py &`
Run Code Online (Sandbox Code Playgroud)

这个文件myfile.py应该在我的主要python脚本退出之后.

另外,我希望得到main.py新流程.

我试过pid,os.spawnl*&os.exec*方法,subprocess.Popen如果我的main.py脚本退出,都会终止我的.

我可能会遗漏一些东西.

更新:我可以使用myfile.pymain.py?这是一种正确的方法吗?

a = subprocess.Popen([sys.executable, "nohup /usr/bin/python25 /long_process.py &"],\
     stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
print a.pid
Run Code Online (Sandbox Code Playgroud)

如果我检查os.startfile,我看不到任何进程正在运行.

long_process.py继续打印一些文本:没有退出.

我在这里做错了吗?

python fork subprocess child-process python-2.7

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

angular-ui-router 1.0.x:event.preventDefault&event.defaultPrevented替代方案

我刚刚更换了$stateChangeStart$transitions.onStart

$rootScope.$on('$stateChangeStart', function(e, ...){
     e.preventDefault();
     // other code goes here...
});
Run Code Online (Sandbox Code Playgroud)

$transitions.onStart({}, function(tras){
     // need a code equivalent to e.preventDefault
     // need a code to identify event.defaultPrevented 
     // other code goes here...

     // get parent states
     _o.util.getAncestorStates(toState.name, true).reverse()
        .forEach(function (state) {
           // certain condition to call event.preventDefault()

           if(event.defaultPrevented) {....}
     });
});
Run Code Online (Sandbox Code Playgroud)

我想,我们可以通过添加return $q.reject()来阻止转换,e.preventDefault()但我无法理解下面的代码return $q.reject()将如何执行.

另外,我该如何更换event.defaultPrevented

我认为应该做些什么,transition.promise但不清楚.

对不起,我无法理解官方文档 - https://ui-router.github.io/ng1/docs/latest/.任何人都可以帮我找到更好的解释或替换上面的代码吗?

javascript angularjs angular-ui angular-ui-router angularjs-1.6

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

Python:无与伦比的组例外

我有字符串组成的时间,我想将时间格式化为12小时格式.

我试过了,

pat1 = "(\d+):(\d+)?\s*pm"
pat1 = "(\d+):(\d+)?\s*am"
hooString = "673 HOO: Mon. 7:30 am - 6pm, Tue. 7:30am - 6 pm, Wed. 7:30 am - 6 pm, Thurs. 7:30 am - 6 pm, Fri. 8 am - 5 pm,"
hooString  = sub(compile(pat1, IGNORECASE), "\1:\2 AM", hooString)
hooString  = sub(compile(pat2, IGNORECASE), "\1:\2 PM", hooString)
print hooString
Run Code Online (Sandbox Code Playgroud)

我得到了输出,

673 HOO: Mon. 7:30 AM - 6pm, Tue. 7:30 AM - 6 pm, Wed. 7:30 AM - 6 pm, Thurs. 7:30 AM - …
Run Code Online (Sandbox Code Playgroud)

regex replace python-2.7

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

python 2.5编码

# -*- coding: utf-8 -*-
from pyquery import PyQuery as pq
from urllib import urlencode
from urllib2 import Request,urlopen
    def sendRequest(url, data = None, headersOnly = False):
    headers  = { 'User-Agent' : 'Mozilla/5.0 (X11; U; Linux i686; en-US;)' }
    request  = Request(url, data, headers)
    return urlopen(request).read()

resp = sendRequest("https://foursquare.com/v/rivers-edge-cafe--    morrison/4c1907776e02b7132eae627b")
print pq(resp)("#venueCategories").text()
Run Code Online (Sandbox Code Playgroud)

输出应该是Café,Burger Joint,Sandwich Place但是有例外:

Traceback (most recent call last):
  File "unicodeerr1.py", line 11, in <module>
    print pq(resp)("#venueCategories").text()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not …
Run Code Online (Sandbox Code Playgroud)

python encoding utf-8 character-encoding

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

排序工作日文本

我有列表["Tue", "Wed", "Mon", "Thu", "Fri"]作为列表,我想把它作为 ["Mon", "Tue", "Wed", "Thu", "Fri"].

怎么排序呢?

python sorting datetime python-2.7

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

使用SVG的线性双色平滑和锐利的渐变

我尝试了所有的CSS技巧,为我的body标签制作线性渐变,如下所示.

在此输入图像描述

但CSS渐变并不尖锐,所以我尝试了如下技巧,

<body><div class="bg"></div></body>
Run Code Online (Sandbox Code Playgroud)
.bg{ 
  background-color:red; 
  width:3000px; 
  height:3000px;
  overflow:hidden
} 
.bg:before{ 
  left: 7%; 
  top:-20%; 
  width:100%; 
  height:100%; 
  transform:rotate(25deg) 
}
Run Code Online (Sandbox Code Playgroud)

所以,我实现了绿色矩形.我现在可以看到锐利的渐变.

但我必须编写media查询来调整每个大小的旋转.

而且我认为如果我们可以在这个div上使用SVG绘制一个三角形从开始(0, 0)(body width, body height)我可以真正做出响应线性渐变.

但我对SVG很新,如何使用SVG实现响应式反直角三角形?

简而言之,我想要一个响应两个彩色smooth & sharp渐变背景.

更新:

在此输入图像描述

完整的CSS代码在这里.

div.bg {
  margin-top: -50px;
  position: fixed;
  height: 1500px;
  width: 3500px;
  overflow: hidden;
  background-color: @bg-gradient-color-1;
  background-size: cover;
  z-index: -999999;
}

.bg:before {
  content: '';
  position: fixed;
  width: 200%;
  height: 200%;
  background-color: @bg-gradient-color-2;
  z-index: -999999;
}

@media only screen and (min-width: …
Run Code Online (Sandbox Code Playgroud)

html javascript html5 svg css3

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

未知提供者:$ animateCssProvider &lt;-$ animateCss &lt;-$ uibModalStack &lt;-$ uibModal

如果我将我的角度版本更新为更高版本,我相信它会起作用,但是我更依赖于1.3.20角度版本。

我尝试了angular-bootstrap版本从1.1latest,都无法使用1.3.20。我得到的只是未知的提供者。

http://plnkr.co/edit/8TynLlehbEoJF4HY9o0S?p=preview

当您注释第9行和取消注释第10行时,此plunkr代码有效。

但是,当1.3.20的ngAnimate和angular版本的angular-bootstrap版本为0.14.3时,它是非常旧的代码,它可以很好地工作。

如何在不升级角度版本的情况下解决此问题?

如果我可以$animateCss显式添加提供程序,那么它起作用吗?但我怀疑它是否会影响其他任何代码。

我不想使用angular-bootstrap的0.14.3,因为它已经过时了。

javascript angularjs angular-ui-bootstrap angular-bootstrap

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

从文本中缩短工作日

我正在编写一个python库,它包含一个由不同类型的小时格式组成的paragrah.段落实际上来自不同的餐馆网站,他们每个网站都有各种格式的营业时间.所以,我决定写一个采用任何格式的库(例如:M-Fri 10am - 12pm,M,Tue,Wed 00:00-18:00等).我的决定是编写一组不同的RegEx,它接受一个字符串,如果它与我的任何模式匹配,则继续.

我选择了RegEx模式匹配,因为不是为每个模式编写自己的逻辑而只是使用str.replace替换可能需要花费很多时间.但是因为我是新手,所以我坚持使用正则表达式.所以你们中的任何人都可以建议我如何完成以下任务?

作为第一步,我想将所有工作日格式缩短为3个字母缩短工作日,如下所示.例:" 星期一09:00 AM - 5:00 PM,星期二09:00 AM - 5:00 PM,周三09:00 AM - 5:00 PM,星期四09:00 AM - 5:00 PM,星期五09: 6:00 AM - 5:00 PM,星期六休息,星期日休息 "

输出应该是" 周一 09:00 AM - 5:00 PM,星期二 09:00 AM - 5:00 PM,星期三 09:00 AM - 5:00 PM,星期四 09:00 AM - 5:00 PM,星期五 09 :上午00点至下午5点,周六休息,太阳落山"

谢谢.

python regex formatting datetime python-2.7

-2
推荐指数
1
解决办法
395
查看次数