从列表中附加正确的值
Appending the correct values from a list
我正在制作一个 Instagram 机器人,我将机器人关注的用户名存储在 file.txt 中。
unique_photos = len(pic_hrefs) # TODO Let this run once and check whether this block of code works or not
followers_list = [] # Contains the names of the people you followed
for pic_href in pic_hrefs:
driver.get(pic_href)
sleep(2)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
try:
# Like this picture
driver.find_element_by_xpath("//*[@aria-label='Like']").click()
print("Picture liked") # TODO After checking delete this line
follow_button = driver.find_element_by_class_name('bY2yH')
# Follow the user if not followed already
if follow_button.text == "•\n" + "Follow":
follow_button.click()
followed = driver.find_element_by_class_name('e1e1d')
followers_list.append(followed.text)
with open("file.txt", 'a') as file:
file.write(",".join(followers_list))
file.write(",")
else:
continue
for second in reversed(range(0, 3)):
print_same_line("#" + tag + ': unique photos left: ' + str(unique_photos)
+ " | Sleeping " + str(second))
sleep(1)
except Exception:
sleep(2)
unique_photos -= 1
这是 file.txt 中的最终结果:
kr.dramas_,kr.dramas_,marcelly.lds,kr.dramas_,marcelly.lds,espn
很明显,问题是当我附加整个 followers_list(其中包含机器人关注的人的所有用户名)时,名称会重复。所以我需要一种方法来只附加新名称。
而且我知道我每次都可以将代码更改为 'w' 以创建一个全新的文件,但这会产生一个问题,因为在我停止机器人之后,如果我不从该列表中取消关注用户并启动bot 我会丢失文件中的所有名称,这是我不想要的。
所以我需要一些建议,以便在机器人停止后 file.txt 看起来像这样:
kr.dramas_,marcelly.lds,espn,
我建议,一旦你关注了所有人,你可以将文件中的所有名称读入 list/set,然后将 list/set 中不存在的名称添加到其中.然后简单地覆盖旧文件。
followers_list = [] # will be populated with follower names
with open("file.txt", 'r') as file:
file_names = file.readline().split(",")
for follower in followers_list:
if follower not in file_names:
file_names.append(follower)
with open("file.txt", 'w') as file:
file.write(",".join(file_names))
我正在制作一个 Instagram 机器人,我将机器人关注的用户名存储在 file.txt 中。
unique_photos = len(pic_hrefs) # TODO Let this run once and check whether this block of code works or not
followers_list = [] # Contains the names of the people you followed
for pic_href in pic_hrefs:
driver.get(pic_href)
sleep(2)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
try:
# Like this picture
driver.find_element_by_xpath("//*[@aria-label='Like']").click()
print("Picture liked") # TODO After checking delete this line
follow_button = driver.find_element_by_class_name('bY2yH')
# Follow the user if not followed already
if follow_button.text == "•\n" + "Follow":
follow_button.click()
followed = driver.find_element_by_class_name('e1e1d')
followers_list.append(followed.text)
with open("file.txt", 'a') as file:
file.write(",".join(followers_list))
file.write(",")
else:
continue
for second in reversed(range(0, 3)):
print_same_line("#" + tag + ': unique photos left: ' + str(unique_photos)
+ " | Sleeping " + str(second))
sleep(1)
except Exception:
sleep(2)
unique_photos -= 1
这是 file.txt 中的最终结果:
kr.dramas_,kr.dramas_,marcelly.lds,kr.dramas_,marcelly.lds,espn
很明显,问题是当我附加整个 followers_list(其中包含机器人关注的人的所有用户名)时,名称会重复。所以我需要一种方法来只附加新名称。 而且我知道我每次都可以将代码更改为 'w' 以创建一个全新的文件,但这会产生一个问题,因为在我停止机器人之后,如果我不从该列表中取消关注用户并启动bot 我会丢失文件中的所有名称,这是我不想要的。
所以我需要一些建议,以便在机器人停止后 file.txt 看起来像这样:
kr.dramas_,marcelly.lds,espn,
我建议,一旦你关注了所有人,你可以将文件中的所有名称读入 list/set,然后将 list/set 中不存在的名称添加到其中.然后简单地覆盖旧文件。
followers_list = [] # will be populated with follower names
with open("file.txt", 'r') as file:
file_names = file.readline().split(",")
for follower in followers_list:
if follower not in file_names:
file_names.append(follower)
with open("file.txt", 'w') as file:
file.write(",".join(file_names))