【发布时间】:2022-01-24 16:45:16
【问题描述】:
我有一个固定格式的 .txt 文件:
Tudo Bom;Static and Ben El Tavori;5:13;
I Gotta Feeling;The Black Eyed Peas;4:05;
Instrumental;Unknown;4:15;
Paradise;Coldplay;4:23;
Where is the love?;The Black Eyed Peas;4:13;
我正在尝试将第三行中的歌曲名称替换为新名称。
我编写了一个名为my_mp4_playlist 的函数,它接受两个参数:
第一个是文件路径(字符串),第二个是新歌名(字符串)。
我正在尝试首先使用read() 函数获取文件内容,然后将文件行循环到第三行并使用";" 分割行。
我的问题是,当我使用read()函数时,没有什么可拆分的,当我不阅读时,拆分工作正常。
代码(尚未完成)如下所示:
def my_mp4_playlist(file_path, new_song):
with open(file_path, "r+") as f: # we using r+ for reading and writing and not overriding ALL text in the file
file_source = f.read()
third_line_list = []
for i, line in enumerate(f, 0):
if i == 2:
print(line.split(";"))
third_line_list = line.split(";")
break
print 语句的输出什么都没有。
但如果我评论f.read() 行,输出是:
['Instrumental', 'Unknown', '4:15', '\n']
为什么会这样?我想以更一般的方式了解,而不是针对我的问题的具体解决方案。
【问题讨论】:
-
print()实际上并没有运行,因为f是空的。file_source未使用;你改用f。我假设这只是您的疏忽,但是如果您仍然感到困惑,请 LMK。 -
嘿,为什么 f 是空的?为什么当我删除 'file_source = f.read()' 行时 f 不为空?