Python queue 不支持特殊字符?

2018-08-02 16:39:25 +08:00
 qile11

如题,刚刚测试了下 回车符\x0D 无法入队列

import queue, time
q = queue.Queue()

for i in range(5):
    q.put(str(i)+"\x0B"+"|\x0D\x1c\x0D")
while not q.empty():
    print (q.get())

q = queue.Queue()

for i in range(5):
    q.put(str(i)+"\x0B"+"|\r\x1c\r")

while not q.empty():
    print (q.get())

这样可以 \r 换为\n

import queue, time
q = queue.Queue()

for i in range(5):
    q.put(str(i)+"\x0B"+"|\n\x1c\n")

while not q.empty():
    print (q.get())

打印出来 没有内容,忘指点下代码那里错误了? python 3.6 win10 64 系统

1245 次点击
所在节点    问与答
6 条回复
msg7086
2018-08-03 04:51:27 +08:00
你贴的整段代码里也没有检查字符串是否进入队列的代码呀,你是怎么看出「无法入队列」的?

回车符本来就是看不见的,什么叫打印出来没有内容?我这里能看到正常打印出了所有的内容。
qile11
2018-08-03 12:51:47 +08:00
@msg7086 我打印出来没有“|”这个内容,我从队列获取后写入文本文件也没有内容!
msg7086
2018-08-03 13:09:45 +08:00
x0B 是控制字符吧。
你有可以复现写入文本文件的源代码么,能不能贴个 gist ?
我跑了你主题里的代码,能看见竖线。
qile11
2018-08-04 22:39:27 +08:00
我重新测试发现确实好使,比较乌龙了!
是不是和我内存有关系
或者因为多线程导致问题错误!
我前天运行发现嘿嘿的没有内容才发帖的,现在居然好使!
qile11
2018-08-04 22:44:09 +08:00
刚刚运行又不好使了
qile11
2018-08-04 22:45:07 +08:00
https://s1.ax1x.com/2018/08/04/PDkwef.png
运行截图图片地址
````
for i in range(5):
q.put(str(i)+"\x0B"+"|\x0D\x1c\x0D")
l=[]
while not q.empty():
print(q.get())
````
上面为运行代码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/476323

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX