python将txt文件转化为列表_普通TXT格式与XSPF播放列表格式间的转换 - Python

开始折腾VLC播放器+直播源的时候,找不到一款合适的转换工具,只能自己动手了..代码很远古,存在诸多缺陷,除了保证语法的正确性请忽略各种规范..##-------------------------------------------------------------#

# 普通格式转XSPF by 黑鸟博客

##-------------------------------------------------------------#

def xspf():

filepathname = tkinter.filedialog.askopenfilename(filetypes=[("TXT通用列表","*.txt"),("列表","*.dpl *.m3u"),("All Files","*")])

filepath = os.path.dirname(filepathname)

filenametmp = os.path.splitext(filepathname)[0]

filename = os.path.split(filenametmp)[1]

fileexttmp = os.path.splitext(filepathname)[1]

filetmpbf = '-1'

if fileexttmp == '.txt':

fileone = open(filepathname, "r" ,encoding="UTF-8")

filetmpbf = fileone.read()

elif fileexttmp == '':

print("用户取消打开文件")

return

else:

mBox.showinfo(title='异常',message='文件格式不支持!目前支持txt,xspf,m3u,dpl!')

return

#本文由 黑鸟博客 guihet.com 制作,转载请注明出处

timenow = datetime.datetime.now().strftime("%m%d%H%M")

pathxspf = filepath + '/' + filename + '-' + timenow +".xspf"

filevlc = open(pathxspf, 'w', encoding = 'UTF-8')

filevlc.write('<?xml version="1.0" encoding="UTF-8"?>\n')

filevlc.write('\n')

filevlc.write('\t

Playlist\n')

filevlc.write('\t\n')

filetmp = filetmpbf

try:

pa = re.compile(r'.*?,.*?$', re.M)

fileonelist = pa.findall(filetmp)

count = 0

for item in fileonelist:

#本文由 黑鸟博客 guihet.com 制作,转载请注明出处

zby = re.match(r'^(.*?),(.*?)$', item)

title = zby.group(1)

url = zby.group(2)

url = url.replace('&', r'&')

filevlc.write('\t\t\n')

filevlc.write('\t\t\t

%s\n' % title)

filevlc.write('\t\t\t%s\n' % url)

filevlc.write('\t\t\t\n')

filevlc.write('\t\t\t\t%d\n' % count)

filevlc.write('\t\t\t\n\t\t\n')

count += 1

filevlc.write('\t\n')

filevlc.write('\t\n')

for i in range(0, count):

filevlc.write('\t\t\t\n' % i)

filevlc.write('\t\n')

filevlc.write('\n')

mBox.showinfo(title='完成',message='成功写入 XSPF 文件!')

except Exception as e:

mBox.showinfo(title='异常',message='写入失败!请检查源文件格式!')

if fileexttmp == '.txt':

fileone.close()

else:

pass

print('本列表由 黑鸟博客 guihet.com 制作')

filevlc.close()

以下是逆向转##-------------------------------------------------------------#

# XSPF转普通格式的字符串 by 黑鸟博客

##-------------------------------------------------------------#

def xspftotxt(livepath = '-1'):

livestr = ''

fileone = open(livepath, "r" ,encoding="UTF-8")

filetmp = fileone.read()

try:

pa = re.compile(r'.*?', re.S)

fileonelist = pa.findall(filetmp)

count = 0

for item in fileonelist:

title = 'title'

url = 'url'

#本文由 黑鸟博客 guihet.com 制作,转载请注明出处

pb = re.compile(r'

.*?')

fileonelistb = pb.findall(item)

for itemb in fileonelistb:

zby = re.match(r'

(.*?)', itemb)

title = zby.group(1)

#本文由 黑鸟博客 guihet.com 制作,转载请注明出处

pc = re.compile(r'.*?')

fileonelistc = pc.findall(item)

for itemc in fileonelistc:

zby = re.match(r'(.*?)', itemc)

url = zby.group(1)

livestr = livestr + title + ',' + url + '\n'

except Exception as e:

print('提取XSPF文件到字符串,错误!!')

eturn '-1'

print('本列表由 黑鸟博客 guihet.com 制作')

return livestr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值