【问题标题】:PyQt5: cannot write cookie to file using QFilePyQt5:无法使用 QFile 将 cookie 写入文件
【发布时间】:2016-09-29 14:11:29
【问题描述】:

我有一个名为 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 语法时遇到了问题。

【问题讨论】:

    标签: python qt5 pyqt5 qfile qtextstream


    【解决方案1】:

    QTextStream(cookie.toRawForm(1), fd.open(QIODevice.WriteOnly)) 中,您传递了两个参数,一个QByteArray 和一个boolQIODevice::open 返回一个布尔值),但QTextStream 不能接受带有boolQByteArray

    【讨论】:

      【解决方案2】:

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

      写入非资源路径:

      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()
      

      【讨论】:

      • 哦,我不知道 :/ 代表资源路径。谢谢:)
      猜你喜欢
      • 1970-01-01
      • 2018-08-13
      • 2011-03-29
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多