使用readlines导入后从Python列表中删除

2024-09-28 19:28:02 发布

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

我已将股票代码列表保存到文本文件中,如下所示:

MMM
ABT
ABBV
ANF
....

然后我使用readlines将符号放入Python列表:

stocks = open(textfile).readlines()

但是,当我查看列表时,它包含我不希望使用的Windows行尾分隔符:

list: ['MMM\r\n', 'ABT\r\n', 'ABBV\r\n', 'ANF\r\n', 'ACE\r\n', 'ACN\r\n', 'ACT\r\n', 'ADBE\r\n', 'ADT\r\n', 'AMD\r\n', 'AES\r\n', .....

有人能建议最简单的方法来删除这些不需要的字符吗?


Tags: 列表windows符号open股票代码文本文件分隔符mmm
3条回答

readlines()不应该使用,除非您知道文件非常小。对于您的应用程序,最好使用rstrip()

with open(filename, 'r') as f:
    for l in f:
        l = l.rstrip()
        # other operations. 

可以在replace命令中将\r\n替换为空字符串。

stocks = [x.replace("\r\n","") for x in stocks]

这就是readlines的工作原理。你可以通过以下方式进行后期处理:

stocks = [x.rstrip() for x in stocks]

但如果我不想使用EOL字符,我宁愿根本不使用readlines,而是:

stocks = open(textfile).read().splitlines()

或者更好:

with open(textfile) as f:
    stocks = f.read().splitlines()

(这里几乎肯定不会有什么不同,但是使用上下文管理器显式地关闭文件对象是一个很好的习惯)

相关问题 更多 >