2015-09-22 4 views
3

Я пытаюсь создать текстовый файл с помощью python. Вот мой код-Как создать текстовый файл в указанном месте с помощью python

import sys 
import os 

str1="a1.txt" 
file1="Documents/Inbox/" 
completeName=file1+str1 
name1=os.path.abspath(completeName) 
myfile = open(name1, 'w') 

Я хочу, чтобы сохранить файл a1.txt в моей папке документов в моем доме directory.I получить следующее сообщение об ошибке с помощью описанной выше code-

Traceback (most recent call last): 
    File "filesave.py", line 8, in <module> 
    myfile = open(name1, 'w') 
FileNotFoundError: [Errno 2] No such file or directory: '/home/pulkit/Documents/Documents/Inbox/a1.txt' 
+0

Есть ли '/ home/pulkit/Documents/Documents/Inbox'? – dhke

+0

Где именно вы его создадите? –

+0

У вас есть каталог с именем '/ home/pulkit/Documents/Documents/Inbox /'? – Psytho

ответ

2

os.path.abspath() не знает, в каком каталоге вы хочу файл для существования - он просто использует текущий каталог, который, кажется, был $HOME/Documents, когда вы получили обратную трассировку.

Либо

  1. всегда запустить скрипт из вашего домашнего каталога (несостоятельным); или
  2. указать явный абсолютный путь в скрипте; или
  3. изменить логику, так что скрипту все равно, где он запускается - обычно это делается путем создания файла в текущем каталоге всегда; или просто печатайте на стандартный вывод, и дайте пользователю понять, что делать с выходом.
+0

Спасибо. Какова альтернатива абспуту. Кажется, что работает в этом случае, но если мне нужно сохранить его в какой-то другой папке, не в текущем пути, это сработает – Noober

+0

Как я могу указать явный абсолютный путь? – Noober

+1

'name1 =" /home/pulkit/Documents/Inbox/a1.txt "'. Но это, безусловно, наименее привлекательный вариант, на мой взгляд. – tripleee

0

В вашем случае опускает «Документы /»из вашей переменной file1 настройки как:

file1="Inbox/"

0

Смотрите ошибку

FileNotFoundError: [Errno 2] No such file or directory: '/home/pulkit/Documents/Documents/Inbox/a1.txt'

Очевидно, что путь оцениваемая:

/home/pulkit/Documents/Documents/Inbox/a1.txt 

Но у вас есть,

/home/pulkit/Documents/Inbox/a1.txt 

Таким образом, изменение file1="Documents/Inbox/" к file1="Inbox/"

3

Этот код показывает, как проверить путь существует и развернуть ~, чтобы получить доступ к домашней директории пользователя, выполняющего скрипт.

#!/usr/bin/python 
import os 
dpath=os.path.join(os.path.expanduser("~"),"Documents","Inbox") 
if not os.path.exists(dpath): 
    os.makedirs(dpath) 
fpath=os.path.join(dpath,"a1.txt") 
open(fpath,"w").write("what ever you want") 
Смежные вопросы