python - 在 Python 列表元素中迭代

标签 python

我如何读入一个包含一行文本但我需要在每个元素中迭代的文件?需要在脚本内部访问文件,超出“with”语句的范围。

例如,file.txt 包含不带引号的单行“abcdefg”。如果我编写下面的代码,它不起作用,因为我相信我在列表中创建了一个元素(即 lines = ['abcdefg']:

file = 'file.txt'
with open(file) as file_object:
    lines = file_object.readlines()
for letter in lines:
     if letter == "a":
         print(letter)

我假设这会在行内创建一个“abcdefg”元素,当然不会等于“a”。

我可以通过将列表转换为字符串来解决这个问题:

{snip}
text_file_string = ''.join(lines)
for letter in text_file_string:
    if letter == "a":
        print(letter)

这确实有效。我想我真正的问题是,有没有更好的方法来完成这个?使它成为一个列表然后成为一个字符串似乎是一种迂回的方法。我想我可以直接将它导入到一个字符串中,然后跳过将它全部列为一个列表。我只是想知道我是否可以将它作为一个列表来做?

最佳答案

您要查找的似乎是 .read(),而不是 .readlines().readlines 返回行数组。您希望将整个文件作为一个字符串,因此 .read()

file = 'file.txt'
with open(file) as file_object:
    content = file_object.read()
    for letter in content:
         if letter == "a":
             print(letter)

关于python - 在 Python 列表元素中迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43233428/

相关文章:

python - cookies.sqlite 在 Firefox 3.6 及更高版本上加密吗?

python - 为什么PyGame动画闪烁

python - 在opencv中计算python中的轮廓

python - 用 Nose 控制平行测试

python - 用缺失日期填充其他列 Nan Pandas DataFrame

python - 根据每个主索引的最后一个二级索引选择所有行

python - 是否可以从服务中使用相同的 gnome 终端窗口

python - keras双向lstm seq2seq

python - 如何在 Windows 命令行中使用参数运行 Python 脚本

python - 在 Redis 中存储自定义 Python 对象