我正在尝试编写一个读取文件的函数,并将文件的行追加到列表中。例如,一个文件如下所示:
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
发布于 2017-11-28 03:15:22
您可以尝试遍历多个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
发布于 2017-11-28 03:15:46
您想要做的很多事情都是由Python中的内置方法处理的。
在字符串周围包装list()
将把它拆分成一个字符列表;对字符串使用.strip()
方法将删除前导空格和尾随空格(如'\r\n'
);并且可以使用for
循环遍历打开的文件的每一行。
def create_grid(filename):
with open(filename, 'r') as fp:
return [list(row.strip()) for row in fp]
发布于 2017-11-28 03:34:38
这是另一个解决方案:
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']]
https://stackoverflow.com/questions/47523319
复制相似问题