这很难看.什么是Pythonic方式呢?
import datetime
t= (2010, 10, 2, 11, 4, 0, 2, 41, 0)
dt = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
Run Code Online (Sandbox Code Playgroud) 在开发过程中,我希望处理的内容与我最终上传到Google服务器时的处理方式略有不同.
我是否可以通过快速测试来了解我是在SDK中还是在线?
如果我处于调试模式,我想做其他事情,而不是我不是.
if DEBUG:
STORED_DATA_FILE = os.path.join(TEMP_DIR, 'store.dat')
LOG_LEVEL = logging.DEBUG
print "debug mode"
else:
STORED_DATA_FILE = os.path.join(SCRIPT_PATH, 'store.dat')
LOG_LEVEL = logging.INFO
print "not debug mode"
Run Code Online (Sandbox Code Playgroud)
然后:
python script.py
not debug mode
python -d script.py
debug mode
Run Code Online (Sandbox Code Playgroud)
我怎么能检测出来?它肯定没有使用__debug__
变量.
我有没有正确的方法?无论如何,我正在解析很多HTML,但我并不总是知道它的编码是什么(一个令人惊讶的数字谎言).下面的代码很容易显示到目前为止我一直在做的事情,但我确信有更好的方法.非常感谢您的建议.
import logging
import codecs
from utils.error import Error
class UnicodingError(Error):
pass
# these encodings should be in most likely order to save time
encodings = [ "ascii", "utf_8", "big5", "big5hkscs", "cp037", "cp424", "cp437", "cp500", "cp737", "cp775", "cp850", "cp852", "cp855",
"cp856", "cp857", "cp860", "cp861", "cp862", "cp863", "cp864", "cp865", "cp866", "cp869", "cp874", "cp875", "cp932", "cp949",
"cp950", "cp1006", "cp1026", "cp1140", "cp1250", "cp1251", "cp1252", "cp1253", "cp1254", "cp1255", "cp1256", "cp1257", "cp1258",
"euc_jp", "euc_jis_2004", "euc_jisx0213", "euc_kr", "gb2312", "gbk", "gb18030", "hz", "iso2022_jp", "iso2022_jp_1", "iso2022_jp_2",
"iso2022_jp_2004", "iso2022_jp_3", …
Run Code Online (Sandbox Code Playgroud) 对于更大的dicts,有更快的方法来执行以下操作吗?
aliases = {
'United States': 'USA',
'United Kingdom': 'UK',
'Russia': 'RUS',
}
if countryname in aliases: countryname = aliases[countryname]
Run Code Online (Sandbox Code Playgroud)