执行一个函数在循环上返回一个值,直到该函数返回False - Python

时间:2016-06-20 14:21:53

标签: python

我有一个将文件从一个服务器移动到另一个服务器的功能。该函数在执行时返回文件名,如果没有传输文件则返回False。

我想在循环上调用此函数,直到它返回False。每次调用函数时,我还需要访问返回的值(文件名)。我可以做其中一个但我无法做到这两个。这是我在伪代码中要完成的任务:

移动文件的功能(这不会改变):

def move_first_matching_file():
    try:
        # find the first file that matches a wildcard file name
        # move the file from remote server to local server
        # delete file from remote server
        return name_of_file
    except:
        return False

在其他模块中调用上述函数(这需要工作):

while move_first_matching_file() as name_of_file is not False:
    # process name_of_file

我需要完成上面的while循环,但也要访问返回的文件名。我该怎么做呢?我上面的代码显然不起作用,但它概述了我想要实现的目标。

2 个答案:

答案 0 :(得分:2)

你不能在Python中做那样的事情,因为赋值总是一个声明。通常的模式是:

{
  "result": {
    "Response": {
      "info": {
        "serial-number": "xyz",
        "value1": "value-2",

答案 1 :(得分:0)

如评论中所述,您也可以

filename = move_first_matching_file()
while filename:
    # process file
    # call the function again and reassing the filename
    filename = move_first_matching_file()

因为你的函数在成功时发送一个字符串(总是代表true),如果不成功则发送false 如果函数失败则循环中断,但如果找到文件名则继续