Я пытаюсь написать программу python с помощью PyCharm и Python 3.3. Что я хочу сделать, так это то, что моя программа будет копировать файлы из одного каталога, в одну папку или более (в зависимости от файла конфигурации).KeyError при чтении конфигурации из utf-8 .ini-файла с помощью configparser
Поскольку некоторые из каталогов, которые я пытаюсь скопировать в файлы, находятся на иврите, ini-файл - utf-8.
Но, когда я прочитал конфигурацию из этого файла это то, что я получаю:
C:\Python33\python.exe C:/Users/Username/PycharmProjects/RecorderMover/RecorderMover.py
Traceback (most recent call last):
File "C:/Users/Username/PycharmProjects/RecorderMover/RecorderMover.py", line 77, in <module>
sourcePath, destPaths, filesToExclude = readConfig()
File "C:/Users/Username/PycharmProjects/RecorderMover/RecorderMover.py", line 62, in readConfig
config = config['RecorderMoverConfiguration']
File "C:\Python33\lib\configparser.py", line 942, in __getitem__
raise KeyError(key)
KeyError: 'RecorderMoverConfiguration'
RecorderMover.py:
def readConfig():
config = configparser.ConfigParser()
with codecs.open('RecorderMover.config.ini', 'r', encoding='utf-8') as f:
config.read(f)
config = config['RecorderMoverConfiguration']
sourcePath = config['SourcePath']
destPaths = config['DestinationPaths']
filesToExclude = config['FilesToExclude']
RecorderMover.config.ini:
[RecorderMoverConfiguration]
SourcePath=I:\VOICE\A
DestinationPaths=D:\RoseBackup,E:\רוזה
FilesToExclude=20.08.12.mp3
Что я делаю неправильно?
@ Ghost93: Вы создали файл с электронной ditor, который добавляет спецификацию UTF-8. Этот символ избыточен в файлах UTF-8 и должен быть удален. –
Большое спасибо за помощь! Это сработало! Если кто-то еще хочет знать, что такое спецификация - [ссылка] (http://stackoverflow.com/questions/2223882/whats-different-between-utf-8-and-utf-8-without-bom) – Ghost93