1

我有一个名为cookies.txt的文件。

fd = QFile(":/cookies.txt")
available_cookies = QtNetwork.QNetworkCookieJar().allCookies()
for cookie in available_cookies:
   print(cookie.toRawForm(1))
   QTextStream(cookie.toRawForm(1), fd.open(QIODevice.WriteOnly))
fd.close()

这是我的完整追溯:

QTextStream(cookie.toRawForm(1),        fd.open(QIODevice.WriteOnly))
TypeError: arguments did not match any overloaded call:
QTextStream(): too many arguments
QTextStream(QIODevice): argument 1 has unexpected type 'QByteArray'
QTextStream(QByteArray, mode: Union[QIODevice.OpenMode,    QIODevice.OpenModeFlag] = QIODevice.ReadWrite): argument 2 has unexpected type 'bool'

我正在关注 C++ 文档,但在编写相应的 python 语法时遇到了麻烦。

4

2 回答 2

1

QTextStream(cookie.toRawForm(1), fd.open(QIODevice.WriteOnly))中,您传递 2 个参数 aQByteArray和 a boolQIODevice::open返回一个布尔值),但QTextStream不能将 aQByteArray与 a 一起使用bool

于 2016-09-29T14:46:12.480 回答
0

您真的要写入资源路径吗?资源是只读的,所以这是行不通的。

要写入非资源路径:

fd = QFile('/tmp/cookies.txt')
if fd.open(QIODevice.WriteOnly):
    available_cookies = QtNetwork.QNetworkCookieJar().allCookies()
    stream = QTextStream(fd)
    for cookie in available_cookies:
        data = cookie.toRawForm(QtNetwork.QNetworkCookie.Full)
        stream << data
    fd.close()
于 2016-09-29T16:07:11.170 回答