我正在尝试创建一个循环,每次事件发生时都会在文本文件中写入日期。但是我不能让它工作,因为我需要一个无限循环来运行程序。如果我将myfile.close()放在循环中,甚至在"if x14==“跟踪中也是如此:”I get:
myfile.write(wri)
ValueError: I/O operation on closed file.
但是,如果我把它放在循环之外,文件不会关闭,输出文件中也不会写入任何内容。
以下是代码
while 1 :
print("yes")
response = requests.get('https://api.spotify.com/v1/me/player/currently-playing', headers=headers)
soup2 = BeautifulSoup(response.text, "html.parser")
x=re.findall('"([^"]*)"', str(soup2))
if isinstance(x, list)==True:
if len(x)>=15:
print(x[14])
if x[14]=="track":
os.system("TASKKILL /IM spotify.exe")
sleep(2)
subprocess.Popen("C:/Users/nebbu/AppData/Roaming/Spotify/Spotify.exe")
sleep(2)
import pyautogui
pyautogui.press("playpause")
pyautogui.press("l")
print(x)
wri=str(date)+"- -"+str(x[13]+": "+str(x[14]))
myfile.write(wri)
myfile.close()
循环永远不会结束,我不知道是否必须结束才能关闭文件,或者是否有其他方法。
发布于 2019-06-27 07:34:04
只需创建一个自定义函数,并在每次想要在文本文件中添加新行时调用它。例如:
def f(dump):
file = open('myfile.txt', 'a')
file.write(dump)
file.write('\n')
file.close()
然后将您想要动态写入的值传递给它。
https://stackoverflow.com/questions/56782114
复制相似问题