Пробелы в пакетном файле и сохранение полок в другом каталоге

1

У меня возникают проблемы с 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 вместо папки, где все уже сохранено?

Прошу прощения, если я сделал какие-либо проблемы с этикетами или форматированием. Если вы сообщите мне, что я сделал неправильно, я сделаю все возможное, чтобы исправить это, как только смогу, спасибо!

Теги:
python-3.x

1 ответ

1
Лучший ответ

Файлы всегда сохраняются в текущем рабочем каталоге, если они не указаны с именами путей, поэтому вам нужно изменить рабочий каталог, если по умолчанию это не то, что вы хотите.

Вы можете избежать жесткого кодирования имени пути и всегда менять свой рабочий каталог, где находится скрипт:

import os
import sys
os.chdir(os.path.dirname(sys.argv[0]))
  • 0
    Спасибо за информацию и предложение! Это работает чудесно! Однако мне все еще интересно, почему текущий рабочий каталог и каталог, в котором сохраняются файлы .pyw и .bat, отличаются. Ты знаешь почему?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню