无法打破python循环

时间:2018-07-09 18:26:38

标签: loops python-3.6

嗨,我是python的初学者, 试图解决循环,找不到任何好的答案。似乎没有任何作用, 检查光盘c:中的文件有两个循环,在chrome.exe被发现后,“ for”循环正在打印文件的infite路径,应该将其打印一次,然后进入子进程。如何终止循环?我在几个地方都使用break,但是它终止了代码

谢谢

IsError

2 个答案:

答案 0 :(得分:0)

如果您也想突破外部循环,则需要标记一个布尔值。

import sys
import subprocess


found = False #haven't found it yet
for root, dirs, files in os.walk(r'c:\\'):
    for name in files: 
        if name == 'chrome.exe': 
            found = True #found it
            pathFile = print(os.path.abspath(os.path.join(root, name)))
            subprocess.call([sys.executable, 'mail1.py'])
            break #don't look for anymore files
     if found:
         break #don't continue the walk
sys.exit()

答案 1 :(得分:0)

似乎是由于下一行中的子进程而出现问题。而且它一直循环播放


现在我在模块导入中遇到了另一个问题,该错误是: AttributeError:模块“ EmailSender”没有属性“ senEm”

我已删除.pyc文件

EmailSender.py

import smtplib
import Config
import sys


def senEm():
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.ehlo()
    server.starttls()
    server.login(Config.emailAdr, Config.passWord)
    message = 'Subject: {}\n\n{}'.format(Config.subject, Config.msg)
    server.sendmail(Config.emailAdr, Config.emailAdr, message)

    server.quit()
    print('Email sent')
sys.exit()

Check.py

import os
import sys
import EmailSender

foundFile = 'chrome.exe'
for root, dirs, files in os.walk('c:\\'):
    for file in files:
        if file == foundFile:
           pathFile = print(os.path.join(root,file))
EmailSender.senEm()
sys.exit()

那怎么可能,我已重命名文件,但仍无法正常工作 第二个问题是我无法调用另一个文件或文件中的函数