小编ast*_*aut的帖子

附加到结尾时文件中间的python utf-8-sig BOM

我最近注意到Python在使用utf-8-sig编码附加到文件时表现得非常明显.见下文:

>>> import codecs, os
>>> os.path.isfile('123')
False
>>> codecs.open('123', 'a', encoding='utf-8-sig').write('123\n')
>>> codecs.open('123', 'a', encoding='utf-8-sig').write('123\n')
Run Code Online (Sandbox Code Playgroud)

以下文本以文件结尾:

<BOM>123
<BOM>123
Run Code Online (Sandbox Code Playgroud)

这不是一个bug吗?这是不合逻辑的.任何人都可以向我解释为什么会这样做?为什么不在文件不存在且需要创建时才设置BOM?

python byte-order-mark utf-8

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

为什么Sublime API中没有"sys.argv"?

Sublime论坛已经提出了这个问题,但似乎没人能回答.也许你可以?

我在Windows 7和8,Sublime 2.0.1 x86版本上遇到了同样的问题:

Traceback (most recent call last):
File "./sublime_plugin.py", line 362, in run_
File "./myTestPlugin.py", line 8, in run
AttributeError: 'module' object has no attribute 'argv'
Run Code Online (Sandbox Code Playgroud)

python sublimetext2

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

pdb.set_trace() 调用后 pdb 没有响应

我有父进程调用它的子进程。我已经放入import pdb; pdb.set_trace()了子进程代码。

当我启动父对象时,python -m pdb parent.py它会被冻结。调试器不响应我输入的任何命令。但是当我点击quitcontinue它确实退出代码时。

看起来 pdb 可以工作,但不会产生任何输出。

$ python -m pdb parent.py
n -m pdb parent.py
> d:\scripts\parent.py(53)<module>()
-> '''
(Pdb) c
Run Code Online (Sandbox Code Playgroud)

它现在停止响应。

根据我中断后得到的痕迹,它在pdb.set_trace()通话后就站在线路上。

>>>>>>>>>>>>>[2013.06.13-10:02:06] : accessed by child.py
Traceback (most recent call last):
File "child.py", line 40, in <module>
    sys.stderr = open(Definition_h.ErrLog, 'a', 0, encoding=Definition_h.utf8)
File "d:\scripts\Definition_h.py", line 863, in unicodeOpen
    def unicodeOpen(*args, **kwargs):
File "C:\Program Files (x86)\Python 2.5.4\lib\bdb.py", line 50, in trace_dispatch
    return self.dispatch_call(frame, arg) …
Run Code Online (Sandbox Code Playgroud)

python debugging pdb

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

标签 统计

python ×3

byte-order-mark ×1

debugging ×1

pdb ×1

sublimetext2 ×1

utf-8 ×1