Python导入一个变量并将其设置为另一个文件的文件名

Python导入一个变量并将其设置为另一个文件的文件名,python,import,Python,Import,我有一个1.py作为: 1.py def file_save(): f = th1.asksaveasfile(mode='w', defaultextension=".txt") filename = f.name return filename 我还有另一个文件two.py,需要从“one.py”打开“filename”: from one import file_save filename=a with open(a,'w'): print('hello

我有一个1.py作为:

1.py

def file_save():
    f = th1.asksaveasfile(mode='w', defaultextension=".txt")
    filename = f.name
    return filename
我还有另一个文件two.py,需要从“one.py”打开“filename”:

from one import file_save
filename=a
with open(a,'w'):
     print('hello')
请帮我解决这个问题,它没有得到文件名。答案将不胜感激


one.py是一个GUI应用程序,当我在two.py上导入时,它会打开GUI,而不是打开具有获得的文件名的文件。

我认为您在two.py中要做的是:a=file\u save

在two.py中,您无权访问返回变量名。相反,只需调用方法file_save,它将为您提供文件名

a = file_save()
with open(a, 'w') as f:
    f.write('hello')

尝试养成在two.py中使用openas的习惯。您需要运行您创建的方法,因为变量filename只是一个局部变量

在two.py的第二行,执行以下操作:

filename = one.file_save()

文件名=a中a的值可能存在重复?a类似于:'C:\Python34\abcd.txt它没有获取文件名-因此发生了什么事?我的意思是,在one.py中文件名中提供的值,如'abcd.txt'在two.py中没有获取,并且没有使用此名称写入/打开'abcd.txt'!我得到了输出,但即使在“f.close”之后,它也不会将“hello”写入文件。如果使用openas,则不需要执行f.close。确保您提供了文件的完整路径,即C:\users\documents\file.txt,否则,如果它只是file.txt,它会将其保存在运行python脚本的文件夹下。如何避免从one.py创建的应用程序中以two.py运行gui?只需将file\u save方法放在同一个.py模块中。您可以在同一个python模块中使用多个方法def methodName,即使在导入特定函数时,它也会运行整个代码!