第12行报错 write() argument must be str, not bytes
时间: 2024-03-05 22:49:22 浏览: 45
抱歉,这是因为在写入文件时,`write()`函数只接受字符串类型的参数,而我们读取文件时以二进制模式打开文件,读取的是字节码类型的数据。解决这个问题有两种方法:
方法一:在写入文件时将字节码类型的数据转换为字符串类型。
例如可以使用`decode()`函数将字节码类型的数据转换为字符串类型,例如:
```python
new_file.write(part1.decode())
```
这里的`part1`是字节码类型的数据,使用`decode()`函数将其转换为字符串类型。
你需要对`part2`、`part3`、`part4`、`part5`也做同样的处理。
方法二:在读取文件时以文本模式打开文件,读取字符串类型的数据。
将打开文件的模式由`'rb'`改为`'r'`,例如:
```python
file = open('example.txt', 'r')
```
这样读取的文件内容就是字符串类型的数据,不需要进行额外的转换。
完整的程序示例(方法一):
```python
file = open('example.txt', 'rb')
content = file.read()
content = content[3:]
part1 = content[:16]
part2 = content[16:646]
part3 = content[646:2146]
part4 = content[2146:2179]
part5 = content[2179:2254]
file.close()
new_file = open('output.txt', 'w')
new_file.write(part1.decode())
new_file.write(part2.decode())
new_file.write(part3.decode())
new_file.write(part4.decode())
new_file.write(part5.decode())
new_file.close()
```
完整的程序示例(方法二):
```python
file = open('example.txt', 'r')
content = file.read()
content = content[3:]
part1 = content[:16]
part2 = content[16:646]
part3 = content[646:2146]
part4 = content[2146:2179]
part5 = content[2179:2254]
file.close()
new_file = open('output.txt', 'w')
new_file.write(part1)
new_file.write(part2)
new_file.write(part3)
new_file.write(part4)
new_file.write(part5)
new_file.close()
```
希望这可以帮助到你。