我一直在尝试根据同一目录中的特定文件名将文件行写入文件,在另一个日志文件中搜索文件名(作为输入提供),以及文件的修改日期。 输出限制我每行不到80个字符。
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)
输出总是如下:
BW_LIB_INCL 13.1 rev. 259 [20140425 16:28] 16/05/14
数据的解释是正确的,然后格式化不正确,因为时间放在下一行(不是相同的)上。 这发生在我的新文件的所有行中。
有人可以给我一个提示吗?
答案 0 :(得分:0)
m = s.readline()
在行尾有\n
。然后你在.format(i, m, values)
做m
,在字符串的中间写m = s.readline().rstrip('\n')
。
我将其作为练习留给读者,以了解当您将此类行写入文件时发生的情况。 : - )
(提示:{{1}})