我是一个极端的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循环?
答案 0 :(得分:0)
您不需要while
循环。相反,这可以通过自引用方法来实现,这种方法创建了一种无限循环,直到满足某个条件(即:found = False)。另外,如果您在os.chdir
和os.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 )
希望这有助于指明您正确的方向。如果有什么不起作用,请告诉我。