我使用Python 3和PyQt5.这是我的测试PyQt5程序,重点关注最后两行:
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
class window(QWidget):
def __init__(self,parent=None):
super().__init__(parent)
self.setWindowTitle('test')
self.resize(250,200)
app=QApplication(sys.argv)
w=window()
w.show()
sys.exit(app.exec())
#sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
我知道exec
是Python中的语言关键字.但官方PyQt5文档 上的代码(特别是退出部分的Object Destruction).我看到这个例子显示使用app.exec()
它让我感到困惑.
当我在我的机器上测试它时.我发现与我的目的没有任何明显的区别.有和没有_
产生相同的输出没有时间差.
我的问题是:
app.exec()
吗?喜欢与Python的内部冲突exec
?我怀疑是因为两人exec
正在执行某些事情.我有一个PCM声音文件,采样率16000,采样位16和通道1.我想播放它,但没有软件可以做.我也试过像ffplay:
ffplay -ar 16000 -ac 1 snake.raw
Run Code Online (Sandbox Code Playgroud)
但仍然失败了.如何在Ubuntu中播放PCM声音文件?
我使用MongoDB并通过pymongo连接到它.这是我的代码:
>>> import pymongo
>>> con=pymongo.Connection('localhost',27017)
>>> con.database_names()
['local', 'bookdb']
>>> con.close()
>>> con.database_names()
['local', 'bookdb']
Run Code Online (Sandbox Code Playgroud)
我con.close()
用来断开与MongoDB的连接,但在那之后,我仍然可以 con.database_names()
用来查看数据库列表.为什么?它永远不会断开与MongoDB服务器的连接.为什么close()
不行?
我想从二进制文件中读取前188个字节,并检查第一个字符是否为0x47
.代码如下:
import os
fp=open("try.ts","rb")
for i in range(100):
buf=fp.read(188)
if buf[0]=="\x47":
print "OK"
fp.close()
Run Code Online (Sandbox Code Playgroud)
但它给出了:
if buf[0]=="\x47":
IndexError: string index out of range
Run Code Online (Sandbox Code Playgroud)
我的问题是:
read()
功能中返回值的类型是什么?我注意到我可以打开这样的文件:
f=open("a.dat","rb")
Run Code Online (Sandbox Code Playgroud)
另一种方法:
with open("a.dat","rb") as f:
Run Code Online (Sandbox Code Playgroud)
在我看来,如果我使用第一个,我必须调用f.close()函数,而第二个方法不需要.我对吗?或者会有更好的方法?哪一个最好在python中打开一个文件?谢谢;-)