Python - 读取另一个文件夹/目录中的文本文件

时间:2017-01-11 14:12:01

标签: python string text directory

以下是我的情况:我在一个不同的目录中有一些.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()

1 个答案:

答案 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))