Python 2.7 如何在程序仍在运行时同时写入文件

Python 2.7 如何在程序仍在运行时同时写入文件,python-2.7,Python 2.7,简单地说,我有一个包含重复数字的文件。我想将第一个文件中的唯一数字写入第二个文件。我已在“r”模式下打开了第一个文件,在“a+”模式下打开了第二个文件。但是,在程序运行时,第二个文件中似乎没有添加任何内容,从而导致错误的输出。任何人都可以帮我解决这个问题。 先谢谢你 这是我的密码 #!/usr/bin/env python fp1 = open('tweet_mention_id.txt','r') for ids in fp1: ids = ids.rstrip() id

简单地说,我有一个包含重复数字的文件。我想将第一个文件中的唯一数字写入第二个文件。我已在“r”模式下打开了第一个文件,在“a+”模式下打开了第二个文件。但是,在程序运行时,第二个文件中似乎没有添加任何内容,从而导致错误的输出。任何人都可以帮我解决这个问题。 先谢谢你

这是我的密码

#!/usr/bin/env python

fp1 = open('tweet_mention_id.txt','r')


for ids in fp1:
    ids = ids.rstrip()
    ids = int(ids)
    print 'ids= ',ids
    print ids + 1
    fp2 = open('unique_mention_ids.txt','a+')
    for user in fp2:
        user = user.rstrip()
        user = int(user)
        print user + 1
        print 'user= ',user
        if ids != user:
            print 'is unique',ids
            fp2.write(str(ids) + '\n')
            break
        else:
            print 'is already present',ids

    fp2.close()

fp1.close()
如果unique_-ention_-ids.txt最初为空,那么您将永远不会进入内部循环,也不会写入任何内容。您应该使用内部循环来确定是否需要添加id,但如果在内部循环之外得到保证,则应进行添加

类似的逻辑适用于非空文件,但原因不同:当您打开它进行追加时,文件指针位于文件的末尾,尝试读取时的行为就好像文件是空的一样。通过在内部循环之前发出fp2.seek0语句,可以从文件的开头开始


无论哪种方式:写入时,您将从第一个文件为第二个文件中的每个不匹配项写入一个给定id,而不是不匹配任何项(给定文件名,听起来像您想要的)。更糟糕的是,在上面的第二种情况下,您将过度写入id后面不匹配的任何内容。

很难帮助修复我们看不到的代码。我已附加了代码。请检查它的初始唯一性。\u title\u ids.txt包含一个用户id。在程序完成执行后,第一个和第二个文件都包含相同的用户id。当我试着调试它们时,我发现内部循环只运行了一次,因此第一个文件中的所有用户id只与我之前在第二个文件中编写的用户id进行比较。虽然场景应该是在第二个文件中写入另一个用户id后,第一个文件中的下一个id应该与第二个文件中的两个id进行比较,而只是与第二个文件中的第一个id进行比较。你只要拿一个箱子,运行我的代码。