以下是我的情况:我在一个不同的目录中有一些.txt文件,可以运行脚本。
mainDir/
-face/
-57268-face-_tracker.txt
-glasses1.txt
-etc
mainDir是应该运行脚本的地方。 所有.txt文件都包含如下字符串:
face=1 lefteye=closed righteye=closed
我的目标是运行文件夹中的所有.txt文件,并检查每个.txt文件是否关闭双眼,如果是,请在文本文件中添加内容,例如:
face=1 lefteye=closed righteye=closed status=sleep
到目前为止,我可以运行文件夹中的所有.txt文件,但我无法打开它们 一个人。
import os
for file in os.listdir("face"):
if file.endswith(".txt"):
listdir = []
listdir = file
print listdir
有什么建议吗?提前致谢
修改 设法检查每个.txt及其字符串,但无法比较它们
import os
face = 'face'
fileDir = os.path.dirname(os.path.realpath(__file__))
faceDir = os.path.join(fileDir,face)
for file in os.listdir("face"):
if file.endswith(".txt"):
listdir = []
listdir = file
print listdir
fpath = os.path.join(faceDir, listdir)
f = open(fpath)
print f.readline()
答案 0 :(得分:0)
这是一个快速尝试,并且有一些轻微的错误行为(如果反复运行,它将继续向每个相关行添加状态)。
基本上,你就是那里的大部分。只是输出每个循环结果的情况,在这种情况下是通过编辑文件。
我使用str.count
来评估哪些面部处于睡眠状态,但有很多方法可以做到这一点。您可以将行分为"="
和空格。
import os
fileDir = os.path.dirname(os.path.realpath(__file__))
faceDir = os.path.join(fileDir, "face")
for file in os.listdir("face"):
if file.lower().endswith(".txt"):
fpath = os.path.join(faceDir, file)
with open(fpath, 'r') as f:
content = f.readlines()
for i, line in enumerate(content):
if line.count("closed") == 2:
content[i] = line.strip() + " status=sleep\n"
with open(fpath, 'w') as f:
f.write(''.join(content))