如何解析串联的a区fi

2024-06-26 02:57:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的区域文件,我想移动到另一个提供商。我的问题是,导出只是一个大的连接区域文件,我的新注册器只接受单一的标准区域文件。在

例如全区.txt包含:

somedomain.com
=========
Record data...
...
------------
anotherdomain.com
=========
Record data...
...
------------
evenmoredomain.com
=========
Record data...
...
------------

我希望发生的是,它获取上面的一个文件并创建3个文件。在

^{pr2}$

在每个文件中,分隔符为:

^{3}$

只会离开

"Record data"

双方。在

所以应该命名一个文件域名.com.txt里面只有相应的记录数据。在

不知道最好的办法是什么。我可以在分隔符上拆分,但不确定如何使用该内容编写一个新文件,其中名称在分隔符之前(anydomain.com网站)在

谢谢!在


Tags: 文件txtcom区域data标准record提供商
2条回答

或多或少

current_file = None

with open('allzone.txt') as f:

    # read line by line
    for line in f:

        # open next file and close previous
        if line.startswith('domain'):
            # close previous file
            if current_file:
                current_file.close()
            # open new file
            current_file = open(line.strip() + '.txt', 'w')

        # write to current file
        if current_file:
            if not (line.startswith('domain') or line.startswith(' -') or line.startswith('===')):
                current_file.write(line)

    # close last file
    if current_file:
        current_file.close()

编辑:任何域的新版本

^{pr2}$

也许这样的事情会管用?可能还需要一些调整

def main():
    with open('allzone.txt', 'r+') as f:
        data = ''
        first_line = ''
        for line in f:
            if first_line == '':
                first_line = line
            elif line == '      \n':
                new_file = open('%s.txt' % first_line.rstrip(), 'w+')
                new_file.write(data)
                new_file.close()
                first_line = ''
                data = ''
            elif line == '=========\n' or line == '...\n' or line == '      \n':
                pass
            else:
                data += line


if __name__ == '__main__':
    main()

相关问题 更多 >