开发者

comparing outputs from command.getoutput(cmd)

开发者 https://www.devze.com 2023-02-12 01:43 出处:网络
I have the following code that is working apart from one problem.Im trying to compare the two outputs from commands.getoutput(cmd) but im getting syntax errors.I understand that this is probably inher

I have the following code that is working apart from one problem. Im trying to compare the two outputs from commands.getoutput(cmd) but im getting syntax errors. I understand that this is probably inherently wrong, but could someone point what im doing wrong

def DiffGenerator():

  try: sys.argv[1]
  except: print "No Directory to scan defined\n"

  try: sys.argv[2]
  except: print "No delay time defined\n"

  ScanDirectory = sys.argv[1]
  if not os.path.exists(ScanDirectory):
    print "Scan Directory does not exist :" + ScanDirectory 

  cmd = "ls -l " + ScanDirectory

  try:
    DiffFileA = commands.getoutput(cmd)
    print "Printing DiffFileA" + DiffFileA
    time.sleep(1)
    DiffFileB = commands.getoutput(cmd)
    if operator.ne(D开发者_开发知识库iffFileA, DiffFileB)
      print "New File placed within " + ScanDirectory
  except:
    print "BLAH"


You might want to consider subprocess

http://docs.python.org/library/subprocess.html

subprocess.Popen(['ls','-a'], stdout = subprocess.PIPE, stdin = subprocess.PIPE)
results = subprocess.communicate()[0] #where [0] is the stdout and [1] is the stderr

EDIT:

Also can you please expand out your try except loops and use specific exceptions e.g.

Bad:

try: sys.argv[1]
except: print "No Directory to scan defined\n"

Good:

try:
    sys.argv[1]
except IndexError:
    print "No directory to scan defined\n"


The line if operator.ne(DiffFileA, DiffFileB) is missing a colon, which could explain a SyntaxError. By the way, when reporting an error please copy and paste exactly the error message that you see.

But using if operator.ne(A,B): is a very unpythonic way to write if A != B:, and I'd avoid it.

0

精彩评论

暂无评论...
验证码 换一张
取 消