【问题标题】:Python Calling a looped variable from a functionPython从函数调用循环变量
【发布时间】:2016-03-08 14:06:25
【问题描述】:

我四处寻找类似的问题,但由于我的代码略有不同,因此它们不起作用。

我有一个在 while 循环中的变量,它分配了一个文件名,我想在不同的函数中使用这个文件名。

问题是当我从另一个函数调用变量时;它重复"Enter a file name"

def save():
        file_name=loaddata()
        shutil.copyfile(file_name "CHECKED_v1.txt")
        print ("Saved Succesfully")

所以我想在savedata 函数中使用文件名"Enter the name of the file to open" 而不让它继续循环

【问题讨论】:

  • 每次调用loaddata()都会执行input函数,这里没有什么奇怪的
  • 您应该使用布尔标志,仅在特定条件下进入循环,例如use_last_filename=True

标签: python function calling-convention


【解决方案1】:

您希望能够将文件名作为参数传递给您的函数。

你可以这样做:

def savedata(file_name=None):
    if not file_name:
        file_name = loaddata()
    shutil.copyfile(file_name "CHECKED_v1.txt")
    print ("Saved Succesfully")

然后您可以拨打savedata(),这将要求您手动输入文件名,或者您可以拨打savedata('/path/filename.txt'),并且不会提示您输入文件名。

【讨论】:

  • 它进入file_name=loaddata()的阶段,但随后它再次调用加载数据并返回它要求循环打开文件的步骤。
  • 您需要使用函数的参数调用 savedata。
猜你喜欢
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
相关资源
最近更新 更多