2016-12-19 2 views
-3

написать программу питона в PyCharm,ошибка пути к файлу в программе питона

программа:

log_file_name = os.path.join("log","log_"+glovar.date+".txt") 
print(log_file_name) 
if os.path.isfile(log_file_name): 
    #if the log file has exist,append new content at the end of the file 
    log_file = open(log_file_name,"a") 
else: 
    #if the log file not exist, create it and write the content in 
    print(log_file_name) 
    log_file = open("log\log_20161219.txt","w+") 

ошибка:

C:\Python\Python36\python.exe C:/Python/PyCharmProject/FaceBookCrawl/FBCrawl.py 
log\log_20161219.txt 
log\log_20161219.txt 
Traceback (most recent call last): 
File "C:/Python/PyCharmProject/FaceBookCrawl/FBCrawl.py", line 144, in  <module> 
log_write("likes","success",user_count,user_addr_name) 
File "C:/Python/PyCharmProject/FaceBookCrawl/FBCrawl.py", line 29, in log_write 
log_file = open("log\log_20161219.txt","w+") 
FileNotFoundError: [Errno 2] No such file or directory: 'log\\log_20161219.txt' 

чем проблема и как ее решить это, ваш своевременный ответ будет весьма признателен

+2

ваш файл не найден, потому что вы обращаетесь к нему с использованием относительного пути - этот является моим стандартным ответом на относительные абсолютные пути: http://stackoverflow.com/questions/30621233/python-configparser-cannot-search-ini -file-правильно-убунту-14-питон-3-4/30625670 # 3062567 0. –

+0

, чтобы добавить комментарий: каталог 'log' не существует в текущем каталоге. –

ответ

-2

Вы должны использовать абсолютный путь, если вы не запускаете ваш скрипт python в родительском каталоге папки «log».

Вы можете использовать это, чтобы избавиться от относительного пути:

root = r"C:\this\is\root\path" 
log_folder = os.path.join(root, r"log") 
log_file = log_file = os.path.join(root, "log","log20161219.txt") #edit JF-Fabre 

Как отмечает Жан-Франсуа Фабр, если каталог не существует, вы должны создать его раньше:

if not os.path.exists(log_folder) : 
    os.makedirs(log_folder) 
+3

, который является _bad_: 'root = 'C: \ this \ is \ root \ path'' создает путь с табуляцией и возвратом каретки. и создание каталога, когда вы не знаете, где вы находитесь, тоже обязательно сбой. –

+0

вы правы, thx, я редактирую свой пост – iFlo

+1

и 'log_file = os.path.join (log_folder,« log20161219.txt »)' тоже лучше –

Смежные вопросы