def loadSubredditConfig (self):
self.builder.get_object ('cbxR').remove_all ()
path = os.path.join (xdg.BaseDirectory.xdg_config_home, 'RedThat', 'subreddits')
if (os.path.exists (path)):
file = open (path, 'r+')
for line in file.readLines ():
self.builder.get_object ('cbxR').append_text (line.strip ().replace (' ', ''))
else:
file = open (path, 'w') # Problem here
file.write ('')
self.builder.get_object ('cbxR').append_text ('')
Traceback (most recent call last):
File "bin/gtkreddit", line 33, in <module>
gtkreddit.main()
File "/home/robin/Ubuntu One/Python/gtkreddit/gtkreddit/__init__.py", line 33, in main
window = GtkredditWindow.GtkredditWindow()
File "/home/robin/Ubuntu One/Python/gtkreddit/gtkreddit_lib/Window.py", line 35, in __new__
new_object.finish_initializing(builder)
File "/home/robin/Ubuntu One/Python/gtkreddit/gtkreddit/GtkredditWindow.py", line 63, in finish_initializing
self.loadSubredditConfig ()
File "/home/robin/Ubuntu One/Python/gtkreddit/gtkreddit/GtkredditWindow.py", line 236, in loadSubredditConfig
file = open (path, 'w')
IOError: [Errno 2] No such file or directory: '/home/robin/.config/RedThat/subreddits'
Я хочу, чтобы файл был создан.
Пробовал w
, a
, rw
, w+
, a+
. Все выдают одну и ту же ошибку.
Убедитесь, что каталог /home/robin/.config/RedThat/
существует, прежде чем пытаться создать в нем файл.
Необходимо убедиться, что все родительские каталоги существуют, по пути, по которому вы хотите создать файл. Вы можете использовать os.makedirs
для достижения этой цели. Вам также, вероятно, следует избегать использования xdg.BaseDirectory
, поскольку python-xdg
на самом деле больше не поддерживается. Вместо этого вы можете использовать dirspec.basedir
, который является пакетом python-dirspec
в Ubuntu.