写入行长度的文件限制

时间:2014-05-16 13:23:01

标签: python python-2.7

我一直在尝试根据同一目录中的特定文件名将文件行写入文件,在另一个日志文件中搜索文件名(作为输入提供),以及文件的修改日期。 输出限制我每行不到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

数据的解释是正确的,然后格式化不正确,因为时间放在下一行(不是相同的)上。 这发生在我的新文件的所有行中。

有人可以给我一个提示吗?

1 个答案:

答案 0 :(得分:0)

m = s.readline()在行尾有\n。然后你在.format(i, m, values)m,在字符串的中间写m = s.readline().rstrip('\n')

我将其作为练习留给读者,以了解当您将此类行写入文件时发生的情况。 : - )

(提示:{{1}})