Вот код для ссылки:
import shutil
import datetime
import os.path
from tkinter import Tk
from tkinter.filedialog import askopenfilename
from tkinter.filedialog import askdirectory
if not os.path.exists('copy_path.txt'):
root = Tk()
root.withdraw()
file_to_backup = askopenfilename(title=' ')
backup_directory = askdirectory(title=' ')
print(file_to_backup)
print(os.path.exists(file_to_backup))
if os.path.exists(file_to_backup):
if os.path.exists(backup_directory):
copy_path_file = open('copy_path.txt', 'w+')
copy_path_file.write(file_to_backup + '\n' + backup_directory)
copy_path_file.close()
if os.path.exists('copy_path.txt'):
copy_path_file = open('copy_path.txt', 'r')
paths = copy_path_file.readlines()
#paths[0] = paths[0].replace('/','\\')
print(paths[0])
print(os.path.exists(paths[0]))
print(os.path.isfile(paths[0]))
print('----------------------')
print(paths[1])
print(os.path.exists(paths[1]))
print(os.path.isdir(paths[1]))
#copy_path_file.close()
if os.path.exists(paths[0]):
if os.path.exists(paths[1]):
today = datetime.datetime.today()
date = str(today.year) + "." + str(today.month) + "." + str(today.day) + "-" + str(today.hour) + "." + str(today.minute)
index = paths[0].rfind('.')
#new_path = paths[0][0:index-1] + date + paths[0][index:paths[0].len]
#print(new_path)
print(paths[0])
#newPath = shutil.copy(paths[0], new_path)
Мой вопрос: почему
печатает (os.path.exists (file_to_backup))
дает мне true , но
print (os.path.exists (paths [0]))
возвращает false когда он вызывается по тому же пути?
Поскольку мой вопрос не задавался с кодом, созданным в качестве минимально воспроизводимого примера, вот более короткая версия:
import os.path
from tkinter import Tk
from tkinter.filedialog import askopenfilename
from tkinter.filedialog import askdirectory
file_to_backup = askopenfilename(title=' ')
print(os.path.exists(file_to_backup))
copy_path_file = open('copy_path.txt', 'w+')
copy_path_file.write(file_to_backup + '\n' + 'backup_directory')
copy_path_file.close()
copy_path_file = open('copy_path.txt', 'r')
paths = copy_path_file.readlines()
print(os.path.exists(paths[0]))
Этоprint возвращает true
Но это возвращает false, путь file_to_backup был записан в файл, и здесь после того, как он был прочитан из файла, он возвращает false.
Ответ, предоставленный пользователем jasonharper, являетсяправильно, мне пришлось удалить символ новой строки после прочтения пути из файла.