Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 写入NamedTemporaryFile失败;将Curl cookie jar转换为请求cookie_Python_Curl_Temporary Files_Cookiejar_Cookielib - Fatal编程技术网

Python 写入NamedTemporaryFile失败;将Curl cookie jar转换为请求cookie

Python 写入NamedTemporaryFile失败;将Curl cookie jar转换为请求cookie,python,curl,temporary-files,cookiejar,cookielib,Python,Curl,Temporary Files,Cookiejar,Cookielib,我正在尝试获取Curl吐出的netscapehttpcookie文件,并将其转换为请求库可以使用的Cookiejar。我的Python脚本中有netscapeCookieString作为变量,它看起来像: # Netscape HTTP Cookie File # https://curl.haxx.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. .miami.edu

我正在尝试获取Curl吐出的netscapehttpcookie文件,并将其转换为请求库可以使用的Cookiejar。我的Python脚本中有
netscapeCookieString
作为变量,它看起来像:

# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

.miami.edu  TRUE    /   TRUE    0   PS_LASTSITE https://canelink.miami.edu/psc/PUMI2J/

因为我不想自己解析cookie文件,所以我想使用
cookielib
。不幸的是,这意味着我必须写入磁盘,因为
cookielib.MozillaCookieJar()
不会接受字符串作为输入:它必须接受一个文件

因此,我正在使用
NamedTemporaryFile
(无法使
SpooledTemporaryFile
正常工作;如果可能的话,我希望在内存中执行所有这些操作)

但这是踢球的人,这不管用

print tempCookieFile.read()
打印空行

因此,
pprint.pprint(cookieJar)
打印一个空的cookie jar

我可以很容易地在我的Mac上复制这个:

>>> import tempfile
>>> tempCookieFile = tempfile.NamedTemporaryFile()
>>> tempCookieFile.write("hey")
>>> tempCookieFile.flush()
>>> print tempCookieFile.read()

>>>

我如何才能真正写入一个
名为temporaryfile

写入文件后,指向该文件的指针指向写入数据之后的位置(在您的情况下是文件结尾),因此,当您读取时,它返回一个空字符串(文件结尾后不再有数据),只需在读取之前查找0即可

>>> import tempfile
>>> tempCookieFile = tempfile.NamedTemporaryFile()
>>> tempCookieFile.write("hey")
>>> tempCookieFile.seek(0)
>>> print(tempCookieFile.read())

漂亮,谢谢!我立刻想到了cookie加载不起作用的原因:必须在写入的每一行之后添加一个换行符。
>>> import tempfile
>>> tempCookieFile = tempfile.NamedTemporaryFile()
>>> tempCookieFile.write("hey")
>>> tempCookieFile.seek(0)
>>> print(tempCookieFile.read())