首页 > 解决方案 > 我不想硬编码要打开的文件('Besties.txt')

问题描述

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

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

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

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

标签: pythonfile

解决方案


欢迎来到社区!

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

比如说,如果你想要一个打印 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您的情况相关)来存储字符串类型的文件名文本。

希望这可以帮助。


推荐阅读