啊吁喔 发表于 2020-9-15 15:34:15

文件

在28讲课后题动动手中,为什么直接按小甲鱼的代码写会报错,把路径加上就不报错了呢?
f = open('OpenMe.mp3')
for each_line in f:
      print(each_line, end='')
f.close()
这样会报错


f = open('E:\\OpenMe.mp3')
for each_line in f:
      print(each_line, end='')
f.close()
而这样就不报错呢

sunrise085 发表于 2020-9-15 15:37:50

不加上路径的话,默认是在程序所在的文件夹路径下查找这个文件,找不到当然就会报错啦
加上路径,就直接去该路径下找这个文件了,若能找到,那就不会报错啦
小甲鱼是把这个文件放在程序同一路径下了

啊吁喔 发表于 2020-9-15 15:44:48

sunrise085 发表于 2020-9-15 15:37
不加上路径的话,默认是在程序所在的文件夹路径下查找这个文件,找不到当然就会报错啦
加上路径,就直接去 ...

就是说这段代码和需要查找的文件保存在同一个文件夹里?

sunrise085 发表于 2020-9-15 15:52:00

啊吁喔 发表于 2020-9-15 15:44
就是说这段代码和需要查找的文件保存在同一个文件夹里?

是的。
不写路径的话,需要把文件放在程序相同路径下。若写上绝对路径,就不需要这样了

啊吁喔 发表于 2020-9-15 15:59:36

sunrise085 发表于 2020-9-15 15:52
是的。
不写路径的话,需要把文件放在程序相同路径下。若写上绝对路径,就不需要这样了

感谢感谢,还有一个问题麻烦一下您{:10_266:}

(role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)
这个是在下一讲中课上代码,照着小甲鱼的代码敲得,怎么会报这样的错误呢?

sunrise085 发表于 2020-9-15 16:16:02

啊吁喔 发表于 2020-9-15 15:59
感谢感谢,还有一个问题麻烦一下您

(role,line_spoken) = each_line.split(':',1)


这一行代码是要把 each_line 根据冒号切片成两部分,然后分别赋值给role,line_spoken
错误是说没有足够的值来进行赋值,也就是说 each_line无法切片成两部分
原因有一下几种可能:
1、你的文件中冒号有中文冒号,导致找不到英文冒号,使得那一行无法切片成功
2、文件中有多余的空行,导致找不到英文冒号,使得那一行无法切片成功

你根据这两条去检查一下那个txt文件,应该就解决了。

满意就结贴吧。以后请不要一贴多问,影响别人回答的积极性。很多人是想多拿几个最佳答案的

啊吁喔 发表于 2020-9-15 16:24:35

sunrise085 发表于 2020-9-15 16:16
这一行代码是要把 each_line 根据冒号切片成两部分,然后分别赋值给role,line_spoken
错误是说没有足够 ...

好的,抱歉下次注意
页: [1]
查看完整版本: 文件