открытие файла

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Написана программа:
import shelve
shelveFile = shelve.open('mydata')
names1 = ['Andrey', 'Alena', 'Lena']
names2 = ['Great Britain', 'France', 'Germany']
names3 = ['London', 'Paris', 'Berlin']
shelveFile['im'] = names1
shelveFile['ctr'] = names2
shelveFile['gor'] = names3

print(shelveFile['im'])
shelveFile.close()

Как ее переделать чтобы решить задачу: открытие просто файла 'mydata' из диска D и получение данных по ключу 'im'

import shelve
shelveFile = shelve.open(d\\'mydata')
print(shelveFile['im'])
shelveFile.close()

не работает
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
так файл приложите
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Три файла mydata создаются при первом открытии программы как написано, потом файл закрывается. Вопрос как получить к mydata доступ по ключу
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Если программа и файлы mydata находятся в одной папке то работает
import shelve
shelveFile = shelve.open('mydata')
print(shelveFile['im'])
shelveFile.close()
а как быть если в разных. те вопрос как изменить shelve.open('mydata') чтобы получить к нему доступ
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
shelveFile = shelve.open('mydata')
заменить на
shelveFile = shelve.open('то что нужно с путём')
примерно так:
Код:
f2 = r'd:\Downloads\Global 6.1\js\data\replacesrussianSpeaking.js'
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Путь d\1\2\'mydata' как правильно написать
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
'mydata' - а расширение? где оно?
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Вот в том и вопрос. Создается три файла с расширениями bac, dat, dir,что писать.
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
если не знаете что писать пробуйте по очереди все три, в чём проблема?
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
попробовал все три и с расширением и без не получается. Файлы находятся в диске д в корневом катологе.
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
много тексту, выложите код которым пробовали, один хотя бы
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
shelveFile = shelve.open(r' d:\mydata') всегда само подставляет расширение dir и выдает ошибку
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
import shelve
shelveFile = shelve.open(r' d:\mydata')
print(shelveFile['im'])
shelveFile.close()

и со всеми расширениями
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
а зачем пробел r' d:\mydata' перед буквой д?
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Большое спасибо.
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
пожалуйста, выложите, что получилось, и пользуйтесь кнопкой код-для его выделения и немного текста с текстового файла, чтобы было видно его структуру
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Код:
import shelve
shelveFile = shelve.open('mydata')
names1 = ['Andrey', 'Alena', 'Lena']
names2 = ['Great Britain', 'France', 'Germany']
names3 = ['London', 'Paris', 'Berlin']
shelveFile['im'] = names1
shelveFile['ctr'] = names2
shelveFile['gor'] = names3

print(shelveFile['im'])
shelveFile.close()

Первоначальная программа создавшая файл в диске d

Код:
import shelve
shelveFile = shelve.open(r'd:\mydata')
print(shelveFile['im'])
shelveFile.close()

Теперь программа открывающая этот файл

получаем

['Andrey', 'Alena', 'Lena']
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
понял
 

Форум IT Специалистов