spidespidespide
@spidespidespide

Как поместить файл в папку?

Здравствуйте. У меня возникла проблема с помещением файла в папку. Я решил написать небольшую интерактивную программку, в которой происходит следующее:
1)Пишем данные которые хотим поместить в файл.
2)Пишем имя и расширение файла.
3)Указываем имя папки в которую сохранить файл с данными.
И вот я не могу поместить новосозданный файл в папку. Прошу вас помочь.
Спасибо.

import os

data = input('Введите данные: ')
file = input('Введите имя файла в который будут помещены данные: ')
expans = input('Введите расширение файла: ')
directory = input('Куда вы хотите сохранить файл?:')

direc = os.mkdir(directory)#Создаём папку.
li = [data]#Помещаем введённые данные в список.

f = open(file + '.' + expans, 'a')#Открываем файл с именем и расширением, которые ввели выше.
f.write("\nВведённые данные: {}\n\n".format(li[0]))#Записываем данные в файл.

f.close()#Закрываем файл.
  • Вопрос задан
  • 4673 просмотра
Решения вопроса 3
@iSergios
Python-разработчик
Вы просто не добавили в путь вашу папку.

import os, os.path
#...
directory = input('Куда вы хотите сохранить файл?:') 
direc = os.mkdir(directory)#Создаём папку.
#...
f = open(os.path.join(directory, file + '.' + expans), 'a')#А папку в путь добавить?
#...


Также после создания папки можно сделать ее текущей методом
os.chdir(directory)
Однако я бы рекомендовал именно первый вариант.
Ответ написан
Комментировать
@Hrabryi
Вы забыли указать папку в пути при открытии файла для записи:
f = open(directory +'\\'+ file + '.' + expans, 'a')
Ответ написан
Комментировать
sim3x
@sim3x
import os
directory = input('Куда вы хотите сохранить файл?:')
file_name = input('Введите имя файла в который будут помещены данные: ')
expans = input('Введите расширение файла: ')

data = input('Введите данные: ')

if not os.path.exists(directory):
    os.makedirs(directory)

file_path = os.path.join(
    directory, '%s.%s' % (file_name, expans)
)

# Открываем файл с именем и расширением, которые ввели выше.
with open(file_path, 'a', encoding="utf-8") as f: 
    f.write("\nВведённые данные: {}\n\n".format(data))  # Записываем данные в файл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы