转换为列表时,python 行分隔文本中的值,将 "\n"添加到列表中的元素

标签 python

令我惊讶的是,这么简单的事情却困扰着我。下面是代码

list = []
f = open("log.txt", "rb")  # log.txt file has line separated values, 


for i in f.readlines():
    for value in i.split(" "):
        list.append(value)

print list

输出是

['xx00', '\n', 'xx01in', '\n', 'xx01na', '\n', 'xx01oz', '\n', 'xx01uk', '\n']

我怎样才能摆脱新行,即“\n”?

最佳答案

list = []
f = open("log.txt", "rb")  # log.txt file has line separated values, 


for i in f.readlines():
    for value in i.strip().split(" "):
        list.append(value)

print list

.strip() 删除尾随的换行符。明确地说,您可以在某些情况下使用 .strip('\n').strip('\r\n')

你可以阅读更多关于 .strip() here

编辑

做你想做的事的更好方法:

with open("log.txt", 'rb') as f:
    mylist = [val for subl in [l.split(' ') for l in f.read().splitlines()] for val in subl]

对于看起来更容易的答案,您可以导入 itertools 并使用 chain 来展平列表列表,例如@ Jon Clements example

所以它看起来像这样:

from itertools import chain
with open("log.txt", 'rb') as f:
    mylist = list(chain.from_iterable(l.split(' ') for l in f.read().splitlines()))

关于转换为列表时,python 行分隔文本中的值,将 "\n"添加到列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12950959/

相关文章:

python - 如何查找密码是否包含列表中的所有字符?

python - 一旦行数大于 N,就删除 MySQL 表的前 X 行

Python:使用 matplotlib.pyplot 的奇怪 x 轴限制

python - 如何在 Linux 中检测鼠标和键盘的不活动

python - Matplotlib 图例中的字幕

c++ - SWIG, boost 共享指针和继承

python - Pandas DataFrame 滚动计数

python - Tensorflow 查找具有匹配值的像素

python - Gensim.Similarity 添加文档或实时培训

python - 运行 Django 应用程序与在 Python 中运行主模块时路径之间的差异