У меня возникают проблемы с Project Multiclipboard из главы 8 книги: " Автоматизация бурового материала и использование Python 3".
Первая проблема заключается в том, что, предположим, моя программа mcb.pyw
сохраняется в:
C:\Users\myName\folder name
где в последней папке есть пробел в имени, мой командный файл:
@pyw.exe C:\Users\myName\folder name\mcb.pyw %*
похоже, не работает должным образом из командной строки. Теперь я могу ввести
mcb save keyword
в командную строку, не получив ошибку, но она ничего не делает. После тестирования, изменив каталог на папку, у которой в пути нет места, я пришел к выводу, что проблема связана с пространством, но я не уверен, как я могу это исправить.
Вторая проблема заключается в том, что, когда командный файл работает, полка модуля, похоже, сохраняет данные в неправильной папке. В частности, я заметил, что если бы я запускал mcb.pyw из командной строки, shelve сохранил бы данные в C:\Users\myName
, который также является каталогом по умолчанию при открытии командной ветки, а не в папке C:\Users\myName\folderName
, где mcb.pyw
mcb.bat
mcb.pyw
и mcb.bat
.
Я обошел это, включив строки:
import os
os.chdir('C:\\Users\\myName\\folderName')
Однако есть ли другой способ решить эту проблему? Почему вы сохраняете сохранение в C:\Users\myName
вместо папки, где все уже сохранено?
Прошу прощения, если я сделал какие-либо проблемы с этикетами или форматированием. Если вы сообщите мне, что я сделал неправильно, я сделаю все возможное, чтобы исправить это, как только смогу, спасибо!
Файлы всегда сохраняются в текущем рабочем каталоге, если они не указаны с именами путей, поэтому вам нужно изменить рабочий каталог, если по умолчанию это не то, что вы хотите.
Вы можете избежать жесткого кодирования имени пути и всегда менять свой рабочий каталог, где находится скрипт:
import os
import sys
os.chdir(os.path.dirname(sys.argv[0]))