正确的方法来读取每行一行的文件

时间:2017-02-05 21:40:13

标签: python function

为了为游戏创建一个迷你项目,我正在开发一个函数,该函数应该返回每行的一行(在单词游戏中),通过打开和读取文件,不包括在板中的换行符。

但是不是调用文件我只是尝试python读取它避免使用打开文件方法。所以我首先尝试的是为这个函数创建一个循环,但是一定是错误的,因为当我测试这个函数时会出现错误信息。

  

'列表'对象没有属性' split'

你能帮我解决这个问题。我目前的进展是这个,但我现在有点卡住了因为我根本不知道什么可能是错的。

def read_board(board_file):
    """ 
    (file open for reading)  ->  list of list of str
    """
    board_list_of_lists = []
    for line in board_file:
        board_list_of_lists = board_list_of_lists.split('\n')
    return board_list_of_lists   

2 个答案:

答案 0 :(得分:0)

请改为尝试:

def read_board(board_file):
    """ (file open for reading) -> list of list of str
    board_list_of_lists = []
    for line in board_file.split('\n'):
            board_list_of_lists.append(line)
    return board_list_of_lists  

答案 1 :(得分:0)

如果文件中的每一行都在物理上位于文件中,那么就不需要拆分

只是做:

select * from
 ( (select "Contribution" as type, if.*
    from invoice if
    where if.family_id is not null
   )
    UNION
   (select "Member" as type, im.*
    from invoice im
    where if.member_id is not null
   )
 ) inv_combined left join family on inv_combined.family_id = family.id
   left join member on inv_combined_member_id = member.id
order by family.name, inv_combined.type, member.firstname

然而,这包括' \ n'在每一行的末尾,所以只需更改循环中的追加行:

def read_board(board_file):
    board_list_of_lists = []
    for line in board_file:
        board_list_of_lists.append(line)
    return board_list_of_lists

这应该输出一个列表,文件的每一行作为列表中的自己的索引,但它不会分开。该文件的整行将是该列表中的索引