【求助】关于python中字节数组转换成字符串

luxiaoshuai 2010-02-03 02:35:59
由于是初学,在些请教大家。


from urllib import request
import struct
class csdn:
def __init__(self):
print ('Hello,this is a init')
def getContent(self,url):
self.url = url
result = request.urlopen(self.url).read()#这里返回一个byte数组
#print(type(result))
saveFile = open('f:\\csdn\\1.txt','w')
try:
saveFile.write(struct.pack("s",result))
finally:
saveFile.close()

test = csdn()
test.getContent('http://www.baidu.com')

查资料说用PACK可以,但我写了上面的那个TEST,执行不出来,或者还有什么别的方法,可以从byte[] to String 的,告诉我一下,谢谢。
...全文
1386 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
luxiaoshuai 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 notax 的回复:]
python 3.1


>>> import urllib.request
>>> urllib.request.urlretrieve('http://www.baidu.com/', '1.txt')
('1.txt', <http.client.HTTPMessage object at 0x83f5bac>)
>>>

[/Quote]thanks , oldjwu也谢谢你。
notax 2010-02-03
  • 打赏
  • 举报
回复
python 3.1


>>> import urllib.request
>>> urllib.request.urlretrieve('http://www.baidu.com/', '1.txt')
('1.txt', <http.client.HTTPMessage object at 0x83f5bac>)
>>>
luxiaoshuai 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 oldjwu 的回复:]
引用 6 楼 luxiaoshuai 的回复:
你用的什么版本


2.6 ,你呢?
[/Quote]3.1 还是不知道为什么不能运行,你的也不能运行。晕,听说3.x改了好多东西。
oldjwu 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luxiaoshuai 的回复:]
你用的什么版本
[/Quote]

2.6 ,你呢?
luxiaoshuai 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 oldjwu 的回复:]
Python code# -*- coding: utf-8 -*-import urllibimport structclass csdn:def__init__(self):print ('Hello,this is a init')def getContent(self,url):
self.url= url
result= urllib.urlopen(self.url).read()#这里返回一个byte数组#print(type(result)) saveFile= open('1.txt','w')try:
saveFile.write(result)finally:
saveFile.close()

test= csdn()
test.getContent('http://www.baidu.com')

这样应该就可以了,我在本地测试通过。
[/Quote]
你用的什么版本
oldjwu 2010-02-03
  • 打赏
  • 举报
回复
# -*- coding: utf-8 -*-

import urllib
import struct
class csdn:
def __init__(self):
print ('Hello,this is a init')
def getContent(self,url):
self.url = url
result = urllib.urlopen(self.url).read()#这里返回一个byte数组
#print(type(result))
saveFile = open('1.txt','w')
try:
saveFile.write(result)
finally:
saveFile.close()

test = csdn()
test.getContent('http://www.baidu.com')


这样应该就可以了,我在本地测试通过。
oldjwu 2010-02-03
  • 打赏
  • 举报
回复
因为你的程序里有汉字,要在代码第一行加:

# -*- coding: utf-8 -*-

luxiaoshuai 2010-02-03
  • 打赏
  • 举报
回复
出错,如下错误:

Traceback (most recent call last):
File "F:\Information\Python\test\networkTest.py", line 17, in <module>
test.getContent('http://www.baidu.com')
File "F:\Information\Python\test\networkTest.py", line 12, in getContent
saveFile.write(result)
TypeError: write() argument 1 must be str, not bytes
oldjwu 2010-02-03
  • 打赏
  • 举报
回复
直接 saveFile.write(result) 不就可以了么?
luxiaoshuai 2010-02-03
  • 打赏
  • 举报
回复
我的目的是想把返回的结果存到一个文件里。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧