使用python删除文本文件中“1”和“,”之间多行中的多个字符,以及如何打开该文件?

2024-10-03 04:37:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我的文本文件包含数百行如下内容:

#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Arabic" tvg-logo="http://jascotvs.com/u,Al Alamiya
http://82.212.74.98:8000/live/7815.
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Arabic" tvg-logo="" tvg-country="MA" tvg-u,Aoula
https://cdnamd-hls-globecast.akamaized.net/live/ramdisk/al_aoula_inter/hls_snrt/al_aoula_inter.
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Arabic",Laayou
http://cdn-hls.globecast.sy/live/ramdisk/al_aoula_laayoune/hls_snrt/index.

我需要用python打开文本文件,只删除“-1”和“,”之间的字符,所以我要删除“-1”和“,”之间的字符的第一行,然后是第二行的url,我不想编辑它,不包含“-1”或“,” 在这之后是第三行,其中包含'-1'和'',之间的字符,我想删除,在这之后是第四行,我不想编辑它,不包含'-1'或'',' 等等……
所以,如果有人能帮助我,我将非常感激


Tags: nameidlivehttp字符languagelogoal
2条回答

以下是由于Andrej的原因,将'-1'和''.'从删除中排除的答案:

import re with open('f.txt', 'r', encoding='UTF8') as f_in, open('data_out.txt', 'w', encoding='UTF8') as f_out: txt = re.sub(r'(?<=^#EXTINF:-1)(.*,)', ',', f_in.read(), flags=re.M) print(txt, file=f_out, end='')

您可以为任务(regex101 demo)使用re模块

例如:

data.txt包含:

#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Arabic" tvg-logo="http://jascotvs.com/u,Al Alamiya
http://82.212.74.98:8000/live/7815.
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Arabic" tvg-logo="" tvg-country="MA" tvg-u,Aoula
https://cdnamd-hls-globecast.akamaized.net/live/ramdisk/al_aoula_inter/hls_snrt/al_aoula_inter.
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Arabic",Laayou
http://cdn-hls.globecast.sy/live/ramdisk/al_aoula_laayoune/hls_snrt/index

然后:

import re

with open('data.txt', 'r') as f_in, open('data_out.txt', 'w') as f_out:
    txt = re.sub(r'(?<=^#EXTINF:)(-1.*,)', '', f_in.read(), flags=re.M)
    print(txt, file=f_out, end='')

产生data_out.txt

#EXTINF:Al Alamiya
http://82.212.74.98:8000/live/7815.
#EXTINF:Aoula
https://cdnamd-hls-globecast.akamaized.net/live/ramdisk/al_aoula_inter/hls_snrt/al_aoula_inter.
#EXTINF:Laayou
http://cdn-hls.globecast.sy/live/ramdisk/al_aoula_laayoune/hls_snrt/index

相关问题 更多 >