格式化文件功能正在编写不必要的#34;,"什么时候不应该

时间:2017-12-14 16:41:53

标签: python

我有一个函数来创建和写一些信息到.txt文件。我必须这样写:

11:13, Andrej Hlavac, Zdenka Sedlak

但相反,我得到了:

11:13, Andrej Hlavac, Zdenka Sedlak, 

写入此输出的函数是:

def write_assignments_file(assignments, header, file_name):
        header[1]=str(dateTime.date(header[3],header[1],5))                  
        header='\n'.join(header)                                
        timetable=open(file_name,'w')                   
        timetable.write(str(header)+'\n')
        timetable.write('Timetable:'+'\n')
        for i in range(len(assignments)):
                for re in assignments[i]:
                        timetable.write(str(re)+', ')
                timetable.write('\n')
        timetable.close()

1 个答案:

答案 0 :(得分:3)

您当前的代码会在每个元素后添加', ',所以当然最后会有一个元素。 str.join(sep, it)方法仅将sep字符串置于 it的每个元素之间。

所以替换

for re in assignments[i]:
    timetable.write(str(re)+', ')

 timetable.write(', '.join(map(str, assignments[i])))

为了记录,永远不要

for i in range(len(assignments)):
     do_something(assignments[i])

代替

for assignment in assignments:
     timetable.write(', '.join(map(str, assignment)))

如果您需要assignments的索引,请使用enumerate