我将尝试分步骤执行此操作:
1-问题: 我必须重写损坏的m3u文件,其行如下:
#EXTINF123#, Title - Song # let's say for clarity sake that the n line
d:\music\title - song.mp3 # this would be the n+1 line
实际上应该在哪里读(注意,标题很重要)
#EXTINF123#, Title - Song
Title - Song.mp3
第一部分是删除包含d:\音乐的行。。。然后这就给出了一条线,它必须被重写,就在它的下方,成为第n+1行
第一部分很简单,我得到了一个有很多行需要修改的文件
#EXTINF123#, Title - Song
#EXTINF123#, Title1 - Song1...
因此,我转向主。问题:
2-暂定解决方案
import in_place
with in_place.InPlace('Soothing.m3u') as file:
for line in file:
file.write(line)
file.write(line[12:])
3-(新)问题:
这不会将“.mp3”字符串附加到第二行(n+1)的末尾,即:
#ext123#, Title - Song
Title - Song
4-(新)暂定解决方案
4.1尝试“添加”字符串当然不行(那太容易了==>;没有乐趣)
file.write(line[12:] + ".mp3")
当然,这将在下一行的开头添加扩展名
4.2将光标“移动”到n+1行的开头
with in_place.InPlace('Soothing.m3u') as file:
for line in file:
file.write(line)
file.write(".mp3")
file.seek(-5,1)
file.write(line[10:])
这将返回一个错误
Traceback (most recent call last):
File "erase.py", line 7, in <module>
file.seek(-5,1)
AttributeError: 'InPlace' object has no attribute 'seek'
之前,您会问:尝试切换到.txt文件不会改变任何问题。当然,可以用文本文件来测试它
4.3加入我想我这里有些东西。它不起作用,但如果你能帮助我理解为什么它会更有趣,我怀疑。。。我当然不会把答案翻过来:)
import in_place
with in_place.InPlace('Soothing.m3u') as file:
for line in file:
file.write(line)
a = line[12:]
b = ".mp3"
c = a.join(b)
file.write(c)
它只是将b发送到各个地方,给出如下信息:
#EXTINF:135,Title - Song
.Title - Song
mTitle - Song
pTitle - Song
3#EXTINF:194,Title1 - Song1
欢迎任何帮助
操作系统:ubuntu 18.04
python 2.7,但可以使用python 3.7
目前没有回答
相关问题 更多 >
编程相关推荐