当前位置: 首页 > 知识库问答 >
问题:

写入文件时对行长度的限制

阎自怡
2023-03-14

我一直在尝试根据来自同一目录的特定文件名、在另一个日志文件中搜索文件名(作为输入给出)以及文件的修改日期为文件写入行。输出限制我每行少于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个答案

徐经武
2023-03-14

m=s.readline()在行的末尾有\n。然后您正在执行<code>。格式(i,m,values),在字符串的中间写入m。

我把它留给读者作为练习,以了解当您将这样一行写入文件时发生了什么。:-)

(提示:< code>m = s.readline()。rstrip('\n'))

 类似资料:
  • 问题内容: 以下问题仅适用于bash和linux: 文件的绝对路径名中的字符数是否有限制? 仅文件名(无扩展名)的字符数有限制吗? 如果是这样,这些限制是什么?如果它们是系统特定的,我该如何访问它们? 问题答案: 这在很大程度上取决于文件系统。对于ext FS(当前在Linux上最常用): 文件名最大长度:255个字节 最大路径长度:无 FS不能识别该扩展名,它包含255个字节,包括扩展名(您可以

  • 问题内容: 我正在尝试使用XML PATH连接查询中某些字符串数据的结果 请参阅下面的查询,发生的情况是XML串联列语句被截断了,似乎最大长度有限制,我该如何克服。 问题答案: 假设您在SSMS中看到了截断,请在SSMS的选项中更改最大字符设置: 工具>选项>查询结果> SQL Server>结果到文本>每列中显示的最大字符数 工具>选项>查询结果> SQL Server>网格结果>检索到的最大字

  • 我在Windows10和vscode上使用Python 3.8.1。

  • 问题内容: 在 不使用外部库的情况下 确定给定mp3文件长度(以秒为单位)的最简单方法是什么?(高度赞赏python来源) 问题答案: 您可以使用pymad。它是一个外部库,但不要落入“此处未发明”陷阱。您不希望使用任何外部库的任何特殊原因? 在这里发现。 - 如果您真的不想使用外部库,请在这里查看并查看他的工作方式。警告:这很复杂。

  • 问题内容: 所以我的代码看起来像这样: 我在行上得到了正确的输出形式,但是当我以后想要写它所显示的内容时,由于代码中没有代码,所以无需换行就可以写入文件。 问题答案: 只是打电话。 将为您的平台(无论是Windows还是Unix风格)提供行分隔符。

  • 问题内容: 我正在尝试使用Python在Windows OS上创建并写入一个临时文件。我已经使用Python模块创建了一个临时文件。 但是当我去写那个临时文件的时候我得到了一个错误。我不可以写临时文件吗?难道我做错了什么?如果要创建并写入临时文件,应该如何在Python中进行操作?为了安全起见,我想在temp目录中创建一个临时文件,而不是在本地(在.exe正在执行的目录中)中创建一个临时文件。 问