2016-09-29 4 views
2

私はcookies.txtという名前のファイルがあります。ここでPyQt5:QFileを使ってファイルにクッキーを書き込むことができません

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の構文を書いを持っています。

答えて

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

ああ私がいることを知りませんでした。ありがとう:) – wrufesh

1

QTextStream(cookie.toRawForm(1), fd.open(QIODevice.WriteOnly))では、2つの引数、QByteArrayを渡し、boolQIODevice::openはブール値を返します)、しかしQTextStreamboolQByteArrayを取ることができません。

関連する問題