如何在Python中迭代字符和行?

时间:2015-05-11 09:43:36

标签: python string loops

我们说我有一个包含此内容的文件:

Sub lookForF()

    Dim inVal As String

    inVal = Range("A4").Value

    If InStr(1, inVal, "F") > 0 Then

        'Your code here when F exists
    Else

        'Your code here for other case

    End If

End Sub

我希望遍历每个字符和行并存储它们。

我知道如果字符用空格分隔,我可以这样做:

xxoxoxoxox

xxxxxxxxxx

xoxoxoxoxo

ooxoxoxoxo

但是如何在没有空格作为分隔符的情况下执行此类操作?我试过mylist=[] with open("myfile.txt") as myfile: for line in file: line = line.strip().split(" ") first = line[0] second = line[1] alist = [first, second] mylist.append(alist)

.split()

但似乎都不起作用。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

这是一个可能对您有用的小片段。

假设您有一个名为'doc.txt'的文件,其中包含两行:

kisskiss
bangbang  

使用以下python脚本:

  with open('doc.txt', 'r') as f:
        all_lines = []
        # loop through all lines using f.readlines() method
        for line in f.readlines():
            new_line = []
            # this is how you would loop through each alphabet
            for chars in line:
                new_line.append(chars)
            all_lines.append(new_line)  

输出结果为:

>>> all_lines
Out[94]: 
[['k', 'i', 's', 's', 'k', 'i', 's', 's', '\n'],
 ['b', 'a', 'n', 'g', 'b', 'a', 'n', 'g', '\n']]

答案 1 :(得分:0)

更多" pythonic"方式:

def t():
    r = []
    with open("./test_in.txt") as f_in:
        [r.extend(list(l)) for l in f_in]
    return r

请注意,您无法使用return [r.extend(list(l)) for l in f_in],因为extend返回None。