我不想硬编码要打开的文件('Besties.txt')

时间:2019-06-13 15:16:45

标签: python file

我有一个浏览按钮,您可以在其中选择任何文件,我希望能够打开我选择的任何文件。但是open()方法仅使用文件名,我该怎么做呢?

#browsePath.set(browsePathEntry.get())  (both variables already declared)

def browseButtonClicked():
    browsePath = filedialog.askdirectory()

def submitClicked():
    with open('Besties.txt', 'w') as file:

1 个答案:

答案 0 :(得分:3)

欢迎来到社区!

您的问题实际上是关于编程的一个非常漂亮(有用)的部分,因为在大多数情况下,我们想一次又一次地使用程序来完成相同的工作,而不仅仅是一次性使用。

说,如果您想要一个打印1加1之和的函数,您可以简单地输入:

def one_plus1():
    return 1 + 1

,稍后您需要一个打印2加1或什至3加1的和的程序,您可以编写更多这样的函数:

def two_plus1():
    return 2 + 1

def three_plus1():
    return 3 + 1

或者,您可以使用变量,以便可以将其设置为任意数字:

def just_plus1(x):
    return x + 1

当您需要将其用于10 + 1时,只需用just_plus1(10)进行调用即可。

就是这样!就是这种精神!

所以回到您的问题,如果您希望函数能够对任何文件使用,只需将文件名设为函数的参数即可:

def submitClicked(file_name):
    with open(file_name, 'w') as file:

在您的示例中,您只需要调用submitClicked('Besties.txt')即可运行它。现在,您可以使用所需的任何名称安全地替换函数调用中的纯文本文件名,或者您可能希望/需要使用变量(在您的情况下可能与browsePath相关)来存储字符串类型的文件名称文字。

希望这会有所帮助。