创建帐号的单个实例文件

时间:2013-07-01 23:27:36

标签: python string

我有一个按行分隔的帐号列表,由一个事务记录生成。

如何将此列表合并到一个文件中,该文件只有一个帐户而不是多个帐户(每个帐户记录了多个帐户)?

Python是首选,但我也可以使用C.

4 个答案:

答案 0 :(得分:5)

with open(filename) as fin, open(newfilename, 'w') as fout:
    fout.writelines(set(fin))

答案 1 :(得分:1)

我不知道你的日志文件是什么样的,但这应该很好用

在python中:

file = open('filename.txt', r+)
accountNos = set(file)

file.truncate()
for x in accountNos:
    file.write(x)

file.close()

这将从文件中取出每一行,并将它们存储在一个集合中。集合是一种数据结构,仅存储唯一元素并删除重复项。在第二个for循环中,您将该组的内容写回文件。

答案 2 :(得分:1)

如果您包含示例日志文件和操作系统,那将会很有帮助。

如果您在UNIX环境中,使用awk和sort非常简单。

如果您的日志文件(名为log.txt)包含帐户信息作为每行的第三个字(请参阅下面的日志文件示例):

LOG WARNING 12345 cancelled ....
LOG WARNING 67482 subscribed ....

请参阅下面的示例,其中美元符号为命令提示符:

$ awk '{print $3}' log.txt | sort -u

如果您在Windows环境中,可以下载适用于Windows的cygwin(http://www.cygwin.com/),安装它并从命令提示符运行上述命令。

答案 3 :(得分:1)

如果订单很重要,那么您可以使用collections.OrderedDict

from collections import OrderedDict

with open('input') as fin, open('output', 'w') as fout:
    uniques = OrderedDict.fromkeys(fin)
    fout.writelines(uniques)