繁体   English   中英

将文件中的行追加到列表中

[英]Appending Lines from a File into a List

我正在尝试编写一个读取文件的函数,并将文件的行添加到列表中。 例如,一个文件读取:

hello
goodbye 

应该返回列表:

[["h","e","l","l","o"]
 ["g","o","o","d","b","y","e"]]

我创建了一个辅助函数splitLine,该函数将一个字符串作为输入,并返回字符串中的字母列表。 例如, "abc"将变为["a","b","c"]

我在插入新行以及从列表中删除“ \\ r”和“ \\ n”时遇到麻烦。 这是我的代码:

def createGrid(filename):
    myFile = open(str(filename),"r")
    myGrid = []
    for line in myFile:
        myLine = splitLine(line)
        myGrid.append(myLine)
    return myGrid

您可能可以像这样尝试遍历多个for循环

def createGrid(filename):
    myFile = open(str(filename),"r")
    myGrid = []
    for line in myFile:
        for apl in line:
            myLine = apl.splitlines()
            myGrid.append(myLine)
    return myGrid

您想做的很多事情都是由Python的内置方法处理的。

list()包裹在字符串周围将把它分成字符列表; 在字符串上使用.strip()方法将删除.strip()和结尾的空格(例如'\\r\\n' ); 您可以使用for循环遍历已打开文件的每一行。

def create_grid(filename):
    with open(filename, 'r') as fp:
        return [list(row.strip()) for row in fp]

这是另一种解决方案:

def createGrid(filename):
    myFile = open(str(filename),"r")
    myGrid = []
    for line in myFile:
        myGrid.append(list(line.strip()))
    return myGrid

print createGrid("input.txt")

输出:

[['h', 'e', 'l', 'l', 'o'], ['g', 'o', 'o', 'd', 'b', 'y', 'e']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM