Как открыть определенный путь с помощью open ()? - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь построить систему передачи файлов с помощью python3 сокетов.У меня есть соединение и отправка, но моя проблема сейчас заключается в том, что отправляемый файл должен находиться в том же каталоге, что и программа, и когда вы получаете файл, он просто помещает файл в тот же каталог, что и программа.Как я могу заставить пользователя ввести местоположение файла для отправки и выбрать местоположение файла для отправки?

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

, так как вы сказали, что файл будет расположен по тому же пути, где находится программа, следующий код может работать

import os
filename = "name.txt"
f = open(os.path.join(os.path.dirname(__file__),filename))
0 голосов
/ 18 мая 2018

Это довольно просто, просто получить путь от пользователя

subpath = raw_input("File path =  ")
print subpath
file=open(subpath+str(file_name),'w+')
file.write(content)
file.close()

Я думаю, это все, что вам нужно, дайте мне знать, если вам нужно что-то еще.

0 голосов
/ 18 мая 2018

Я предполагаю, что вы открываете файлы с помощью:

open("filename","r")

Если вы не укажете абсолютный путь, функция открытия всегда будет по умолчанию относительным путем.Итак, если бы я хотел открыть файл, такой как /mnt/storage/dnd/5th_edition.txt, я бы имел для использования:

open("/mnt/storage/dnd/4p5_edition","r")

И если бы я хотел скопировать этофайл в / mnt / storage / trash / я бы имел , чтобы также использовать абсолютный путь:

open("/mnt/storage/trash/4p5_edition","w")

Если вместо этого я решил использовать это:

open("mnt/storage/trash/4p5_edition","w")

Тогда я бы получил IOError, если бы в моей нынешней папке не было каталога с именем mnt с каталогом storage / trash.Если бы эти папки действительно существовали в моей нынешней папке, то они оказались бы в / независимо от / path / is / to / my / current / directory / mnt / storage / trash / 4p5_edition, а не /мнт / хранение / мусор / 4p5_edition.

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