我正在为我们的数据部门编写一个转换代码,将固定宽度的文件转换为delmited文件。通常我们使用将文件导入Excel,使用文本导入向导设置字段长度,然后保存为csv。然而,我们已经遇到了一个限制,我们已经开始获取数百万条记录的文件,因此无法导入到Excel中。这些文件在字段之间并不总是有空格,尤其是在诸如电话号码或邮政编码之类的值字段之间。页眉也经常被完全填满,没有空格。在
我们正在处理的典型固定宽度文件示例:
SequenSack and PaFull Name****************************]JOB TITLE****************]HOSP NAME******************************]Delivery Address***********************]Alternate 1 Address********************]Calculated Text**********************************]POSTNET Bar
000001T1 P1 Sample A Sample 123 Any Street Anytown 12345-6789 12345678900
000002T1 P1 Sample A Sample Director of Medicine 123 Any Street Po Box 1234 Anytown 12345-6789 12345678900
程序需要将文件分成以下分隔字段:
顺序
Sack和Pa
全名
职务
医院名称
送货地址
备用地址1
计算文本
POSTNET栏
每个文件作为每个字段的宽度略有不同,具体取决于作业的其余部分。我要找的是一个面向GUI的分隔符,很像固定宽度文件的Excel导入向导。我用Python编写这个工具,它是一个更大的工具的一部分,它可以执行许多其他文件操作,例如将文件拆分为多个文件、反转文件、从分隔符转换为固定宽度以及检查位数检查。我将使用Tkinter作为其余的工具,如果解决方案也使用它,这将是理想的。在
有什么帮助吗
编辑:我现在看到您正在寻找gui。我将把这个不正确的答案留给后人。在
如果我正确地理解了这个问题(很有可能我没有……),最简单的解决方案可能是使用文本小部件。在
使第一行是一系列与行长度相同的空格。使用两个交替标记(例如:“偶数”和“奇数”)为每个字符指定一种可选颜色,以便使它们彼此脱颖而出。第二行是标题,剩下的行是几行示例数据。在
然后,在第一行设置绑定,以便在用户单击字符时将空格转换为“x”。如果他们点击一个“x”,把它转换回一个空格。然后,他们可以点击每个列开始的字符。当用户完成后,您可以得到文本小部件的第一行,并且每一列都有一个“x”。然后你只需要一个小函数,把它转换成你需要的任何格式。在
它看起来大概是这样的(虽然很明显颜色会和这个网站上显示的不同)
这里有一个快速的黑客来说明一般的想法。这有点草率,但我认为它说明了技术。运行它时,单击第一行中的区域以设置或清除标记。这将使每个标记的标题以替代颜色高亮显示。在
^{pr2}$相关问题 更多 >
编程相关推荐