将局部变量转换为全局变量

时间:2013-10-15 12:03:14

标签: python regex python-3.x global-variables

我想创建一个循环来测试人们输入的名称是否为文本文件。 我做我的测试,但如果我要求人们重新输入文件的名称,它不会更改全局文件名。

我知道,这是一个全局和局部变量的问题,但我找不到改变它的方法。

这是我的代码:

def name():
    global f1
    global t
    global f2
    print('File Name')
    f1 = input()
    t = match(r'.+(\..+$)',f1)
    while t.group(1) != '.txt' :
            print(t.group(1))
            print("New file Name")
            f2 = input()
            f1 = f2
            print(f1)

name()

1 个答案:

答案 0 :(得分:2)

我根本不知道你为什么需要全局变量,为什么不把代码重写成如下代码:

from os.path import splitext

def get_name():
    while True:
        name = input("File name> ")
        if splitext(name)[1] != '.txt':
            print("Invalid name, give another")
        else:
            return name

filename = get_name()