Python,检查.txt文件中的文件名

时间:2017-09-18 01:17:40

标签: python

我是一个极端的noobie ...

我制作了一个浏览程序。

我有从代码中随机选择图像文件的代码。 (我可以这样做)

我需要知道如何将图像的文件路径写入txt文件。 (简单数据库) 然后下次读取txt文件以查看该文件是否已在最近100个条目中被选中,如果已被选中,如何使其返回到随机模块并再次尝试直到它获得一个在100次中被选中。

由于

样品

os.chdir('C:\landscapes\pics')

left1 = random.choice(os.listdir("C:\landscapes\pics"))

# TEST FILE
print(left1)

os.chdir('C:\landscapes')

logfile = open('test.txt', 'r')
loglist = logfile.readlines()
logfile.close()
found = False
for line in loglist:        
    if str(left1) in line:
        print ("Found it")
        found = True

if not found:
    logfile = open('test.txt', 'a')
    logfile.write(str(left1)+"\n")
    logfile.close()
    print ("Not Found!")

我能告诉你文件是否找到了。

我,我只是不知道下一步该做什么,我想我需要一种While循环?

1 个答案:

答案 0 :(得分:0)

您不需要while循环。相反,这可以通过自引用方法来实现,这种方法创建了一种无限循环,直到满足某个条件(即:found = False)。另外,如果您在os.chdiros.listdir的路径中指定了您尝试搜索的目录,我会将open()的引用取出,因为您不需要这些引用。

def choose_random_file():
    return random.choice(os.listdir("C:\landscapes\pics"))

def validate_randomness( random_file ):
    logfile = open('C:\landscapes\test.txt', 'r')
    loglist = logfile.readlines()
    logfile.close()
    found = False
    for line in loglist:        
        if str( random_file ) in line:
            print ("Found it")
            found = True
            # we found the file, now break out of the for loop
            break
    # Check if we found the file
    if found:
        # If we found the file name, then circle-back to pick another file
        random_file = choose_random_file()
        # Now validate that the new pick is in the test.txt file again
        validate_randomness( random_file )

    if not found:
        logfile = open('test.txt', 'a')
        logfile.write(str( random_file )+"\n")
        logfile.close()
        print ("Not Found!")

random_file = choose_random_file()
validate_randomness( random_file )

希望这有助于指明您正确的方向。如果有什么不起作用,请告诉我。