python - 我不想硬编码要打开的文件('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:
解决方案
欢迎来到社区!
您的问题实际上是关于编程中一个非常漂亮(且有用)的部分,因为在大多数情况下,我们希望使用程序一遍又一遍地完成相同的工作,而不仅仅是一次性使用。
比如说,如果你想要一个打印 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
您的情况相关)来存储字符串类型的文件名文本。
希望这可以帮助。
推荐阅读
- angular - 检测表单中的数据是否更改
- kotlin - 如何从 List 中获取 IntRange 值
在科特林? - javascript - vue 路由器滚动行为提示路由值
- google-apps-script - 我如何通过谷歌脚本从谷歌表中获取一天
- apache-spark - 如何在不知道 Spark 中的任何特定值的情况下根据 GroupBy 列的值选择列
- css - 如何禁用 Vuetify 数据表的悬停效果?
- javascript - 如何使用 highchart 导出带有自定义标记的仪表图?
- python - IndexError:迭代两个 webelements 列表时列表索引超出范围
- html - Bootstrap 列不会填充剩余高度
- powershell - Powershell复制文件信息