1
file = open("file path", "r") 
links = file.read().split("\n")
print(links)

看起来像这样['https://www.youtube.com/channel/UCWTgK00SCKKNgpbsAgqzUxw/videos','https://www.youtube.com/watch?v=4Dkl1K3mtHM', '']

我希望它是这样的: ['https://www.youtube.com/channel/UCWTgK00SCKKNgpbsAgqzUxw/videos','https://www.youtube.com/watch?v=4Dkl1K3mtHM']

我怎样才能做到这一点?我错过了任何具体步骤吗?如何''从列表中删除

原文文件: https: //www.youtube.com/channel/UCWTgK00SCKKNgpbsAgqzUxw/videos https://www.youtube.com/watch?v=4Dkl1K3mtHM

4

3 回答 3

1

文件的末尾通常有一个空行,因此您可以手动删除最后一项:

links = file.read().split("\n")[:-1]

意思是[:-1]“直到最后一个元素,但不包括最后一个元素”。

或者,您可以使用以下命令过滤所有空行(包括中间):

links = [line for line in file.read().split("\n") if line and not line.isspace()]

我们list在这里使用是因为filter返回了一个生成器。line and not line.isspace()首先表示该行不为空 ( ''),其次表示它不仅包含空格字符。

于 2020-03-28T04:24:23.170 回答
1

如果''不仅在列表的末尾,只需遍历列表,同时检查条件,同时追加到新列表。

links = ['https://www.youtube.com/channel/UCWTgK00SCKKNgpbsAgqzUxw/videos','https://www.youtube.com/watch?v=4Dkl1K3mtHM', '']
new_links = []
for i in links:
    if i != '':
        new_links.append(i)
print(new_links)

这将返回['https://www.youtube.com/channel/UCWTgK00SCKKNgpbsAgqzUxw/videos', 'https://www.youtube.com/watch?v=4Dkl1K3mtHM']

于 2020-03-28T04:34:10.700 回答
0

您也可以strip用于此

file = open("file path", "r")
links = file.read().strip().split("\n")
print(links)

strip()是 Python 编程语言中的一个内置函数,它返回删除了前导和尾随字符的字符串副本(基于传递的字符串参数)。

于 2020-03-28T06:58:18.373 回答