gpt4 book ai didi

python - 对不断变化的文件进行重复搜索和替换。 Python

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:48 24 4
gpt4 key购买 nike

所以我试图有一个脚本,每 3 秒运行一次来​​读取一个文本文件,清理它并写入另一个文本文件。原始文本文件总是在变化。它来自音乐播放程序,当前歌曲名称。我在互联网上收集了一些 Python 代码,并根据我的需要对它们进行了个性化设置。现在我有一个可以完美运行的脚本,每个命令和调度。但是当原始文件再次更改时,脚本会出错。知道如何解决这个问题吗?

Traceback <most recent call last>:
File "radio_script.py", line 29, in <module>
executeSomthing<>
File "radio_script.py", line 10, in executeSomething
for line in intext:
IoError: [Errno 9] Bad file descriptor

我正在 Windows 上运行 python 脚本。因此,当脚本运行时,如果一行包含任何“delete_lin”单词,则整行都会被删除。虽然每个“行替换”条目都将这些单词替换为空,就像它们应该做的那样。这是我的脚本。

# -*- coding: utf-8 -*-
delete_lin = ['VP', 'VH', 'VT', 'VB', 'VS', 'BG']
import time
import os
def executeSomething():
with open('current.txt', 'r') as intext, open('currentedit.txt', 'w') as outfile:
for line in intext:
if not any(delete_lin in line for delete_lin in delete_lin):
line = line.replace('(email)', "")
line = line.replace('_AO VIVO', "")
line = line.replace('Ao Vivo', "")
line = line.replace('AO VIVO', "")
line = line.replace('(04)', "")
line = line.replace('2016', "")
line = line.replace('2015', "")
line = line.replace('2014', "")
line = line.replace('2013', "")
outfile.write(line)
outfile.flush()
intext.flush()
print 'Pause'
time.sleep(3)

while True:
executeSomething()

最佳答案

当原始文件被修改时,文件引用intext不再是有效文件。虽然路径相同,但实际文件已被修改。因此,您应该在 for 循环末尾调用 intext.close()。为了确保它实际上正在重新创建文件引用,请确保仅在循环之外 sleep

关于python - 对不断变化的文件进行重复搜索和替换。 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38880640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com