xiaoshengemu 发表于 2020-8-27 08:54:32

Mac python 往文件输入内容是 报内容不是字符串

os.write(fd,"奥特曼爱打小怪兽")
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
    os.write(fd,"奥特曼爱打小怪兽")
TypeError: a bytes-like object is required, not 'str'

1q23w31 发表于 2020-8-27 08:56:31

发完整代码

曲速飞跃 发表于 2020-8-27 08:57:32

os.write(str(fd) + "奥特曼爱打小怪兽")
看看行不行吧

sunrise085 发表于 2020-8-27 09:17:20

本帖最后由 sunrise085 于 2020-8-27 09:18 编辑

英文理解错了。报错是说:类型错误,需要类似字节类型对象,而不是字符串类型对象
也就是说这里的参数不能是字符串,应该字节流

解决方法,对字符串进行编码
给你提供一种方法,你也可以自己再查查,将字符串编码的方式方法
os.write(fd,"奥特曼爱打小怪兽".encode())

Twilight6 发表于 2020-8-27 09:39:07



看看这个是不是你遇到的问题:https://www.fujieace.com/python/str-bytes.html

xiaoshengemu 发表于 2020-8-27 21:46:21

sunrise085 发表于 2020-8-27 09:17
英文理解错了。报错是说:类型错误,需要类似字节类型对象,而不是字符串类型对象
也就是说这里的参数不能 ...

>>> os.write(fd,"奥特曼爱打小怪兽".encode())
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
    os.write(fd,"奥特曼爱打小怪兽".encode())
TypeError: an integer is required (got type tuple)
报错

xiaoshengemu 发表于 2020-8-27 21:50:19

Twilight6 发表于 2020-8-27 09:39
看看这个是不是你遇到的问题:https://www.fujieace.com/python/str-bytes.html

str="奥特曼爱打小怪兽"
>>> str=str.encode()
>>> os.write(fd,str)
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
    os.write(fd,str)
TypeError: an integer is required (got type tuple)

报错

sunrise085 发表于 2020-8-27 22:05:51

xiaoshengemu 发表于 2020-8-27 21:46
>>> os.write(fd,"奥特曼爱打小怪兽".encode())
Traceback (most recent call last):
File "", line...

你的前后代码呢?问题应该不在这一行
下面这个是可以运行的
import os,sys
fd = os.open( "haha", os.O_CREAT|os.O_WRONLY)
os.write(fd,"奥特曼爱打小怪兽".encode(encoding='GBK'))#GBK方式编码
#os.write(fd,"奥特曼爱打小怪兽".encode())#utf-8编码
os.close(fd)

xiaoshengemu 发表于 2020-9-4 19:32:45

sunrise085 发表于 2020-8-27 22:05
你的前后代码呢?问题应该不在这一行
下面这个是可以运行的

执行完上面的代码后

os.write(fd,"奥特曼爱打小怪兽".encode(encoding='GBK'))#GBK方式编码
16
os.close(fd)
然后文件就打不开了
用python来读取
fd = os.open( "/Users/xiaoshengemu/Desktop/haha.rtf", os.O_RDONLY)
red = os.read(fd,2314)
print (red)
b'\xb0\xc2\xcc\xd8\xc2\xfc\xb0\xae\xb4\xf2\xd0\xa1\xb9\xd6\xca\xde'
读是读出来了。但是返回了乱吗
之后有用终端读取 结果返回
??????????С????%   

xiaoshengemu 发表于 2020-9-7 21:07:21

本帖最后由 xiaoshengemu 于 2020-9-7 21:18 编辑

xiaoshengemu 发表于 2020-9-4 19:32
执行完上面的代码后

os.write(fd,"奥特曼爱打小怪兽".encode(encoding='GBK'))#GBK方式编码


页: [1]
查看完整版本: Mac python 往文件输入内容是 报内容不是字符串