我正在经历一些非常奇怪的行为,我希望有人能向我解释发生了什么。我已经阅读了Python官方文档,没有看到任何可以解释我所看到的内容的东西-如果我遗漏了什么,请为我指出。你知道吗
我有一个(大的)python脚本,它需要大约150k的文本,包含在“content”变量中,并将其上传到远程系统上的Perl脚本进行日志记录。它使用urllib来执行以下操作:
thash = {'file_name': file_name, 'contents':content}
upload = urlib.urlencode(thash)
post = urlib.urlopen("http://path.to.perl.script/log_writer.pl", upload)
#post.read()
问题是文件“log_编剧.pl根据“content”的长度,writes在一个看似随机选择的位置被截断,除非我调用读后()在Python脚本中的urlopen调用之后。你知道吗
我对Python还很陌生,对Perl也很陌生,但我的理解是它不应该以这种方式工作。为什么远程Perl脚本在我调用读后()在我的Python脚本中是本地的吗?你知道吗
您需要在请求之后对“post”中的response对象执行一些操作。如果在你的程序中没有任何“post”的引用(例如。读后(), 后关闭(),等等),python将对其进行优化,并在POST完成之前,让响应对象有资格进行垃圾收集。你知道吗
有关详细信息,请参见:should I call close() after urllib.urlopen()?。你知道吗
相关问题 更多 >
编程相关推荐