我想创建一个循环来测试人们输入的名称是否是文本文件。 我做了测试,但如果我要求人们重新输入文件名,它不会更改全局文件名。
我知道,这是全局变量和局部变量的问题,但我找不到更改它的方法。
这是我的代码:
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()
最佳答案
我什至不知道为什么你需要全局变量,为什么不将代码重写为如下所示:
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()
关于python - 将局部变量转换为全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19380733/