Я не хочу жестко кодировать файл, который я хочу открыть ('Besties.txt') - PullRequest
2 голосов
/ 13 июня 2019

У меня есть кнопка просмотра, где вы можете выбрать любой файл, я хочу иметь возможность открыть любой выбранный файл.Но метод open () принимает только имена файлов, как мне это сделать?

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

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

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

1 Ответ

3 голосов
/ 13 июня 2019

Добро пожаловать в сообщество!

Ваш вопрос на самом деле об очень красивой (и полезной) части программирования, потому что в большинстве случаев мы хотим использовать программы для выполнения одной и той же работы снова и снова, а не просто одноразовым одноразовым использованием.

Скажем, если вам нужна функция, которая печатает сумму 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 в вашем случае) для хранения текста имени файла со строковым типом .

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...