写入文件的行长度限制
我一直在尝试根据同一目录下特定文件名的要求,把内容写入一个文件。我还需要根据另一个日志文件(作为输入提供)中的文件名进行搜索,以及文件的修改日期来进行操作。
def getFiles(flag, file): if (flag == True): file_version = open(file) if file_version: s = mmap.mmap(file_version.fileno(), 0, access=mmap.ACCESS_READ) file_version.close() file = open('AllModules.txt', 'wb') for i, values in dict.items(): # search keys in version file if (flag == True): index = s.find(bytes(i)) if index > 0: s.seek(index + len(i) + 1) m = s.readline() line_new = '{:>0} {:>12} {:>12}'.format(i, m, values) file.write(line_new) s.seek(0) else: file.write(i +'\n') file.close() if __name__ == '__main__': dict = {} for file in os.listdir(os.getcwd()): if os.path.splitext(file)[1] == '.psw' or os.path.splitext(file)[1] == '.pkw': time.ctime(os.path.getmtime(file)) dict.update({str(os.path.splitext(file)[0]).upper():time.strftime('%d/%m/%y')}) if (len(sys.argv) > 1) : if os.path.exists(sys.argv[1]): getFiles(True, sys.argv[1]) else: getFiles(False, None)
输出的内容每行都限制在80个字符以内。
BW_LIB_INCL 13.1 rev. 259 [20140425 16:28] 16/05/14
输出的格式总是这样:
数据的解释是正确的,但格式不对,因为时间被放在了下一行(而不是同一行)。
这种情况发生在我新文件的所有行上。
有人能给我一点提示吗?
1 个回答
0
m = s.readline()
这行代码会把一整行读进来,最后会带一个换行符\n
。接着你用.format(i, m, values)
把m
放到字符串中间去写。
我留给读者自己去思考,当你把这样的内容写入文件时会发生什么。:-)
(提示:可以用m = s.readline().rstrip('\n')
来去掉换行符)