почему крашит?

Vespan

loneliness
Автор темы
Проверенный
2,101
1,633
1618704787447.png

Python:
#без
        with open('info', "w"):
            config.write('info')
#не крашит
1618704862194.png
 

Vespan

loneliness
Автор темы
Проверенный
2,101
1,633
Ругается на табуляцию, в idle видно, что пробелов 8 примерно. Походу у тебя в VS Code стоит 8 пробелов. Посмотри внизу в строке Spaces
И вообще кидай код не скринами
Python:
import time
import configparser
import os

config = configparser.ConfigParser()

def createConfig(): ##########################config
    """
    Create a config file
    """
    config.add_section("Login")
    config.set("Login", "login", '')
    config.set("Login", "password", '')
    config.add_section("Register")
    config.set("Register", "login", '')
    config.set("Register", "password", '')
    
    with open('info', "w") as config_file:
        config.write(config_file)########################

def register(arg):
    if arg == 'ru':
        login_input = input('Введите логин: ')
        config.set("Login", "login", 'login_input')
        with open('info', "w"):###################################################################
            config.write('info')


def your_login_function(yes_no):
    if yes_no == 'да':
        login_login_ru = input('Хорошо,Введите ваш логин: ')   

    elif yes_no == 'нет':
        register('ru')
    elif yes_no == 'no':
        register('en')

if not os.path.exists('info'):
    createConfig()
language = input('Язык?language?(en/ru):')
if language == 'en':
    print('English language delivered')
    your_login = input('Are you registered?')
elif language == 'ru':
    print('Русский язык поставлен')
    your_login2 = input('Вы зарегистрированы?(да/нет): ')
    your_login_function(your_login2)
else: print('Ошибка,еще раз')

register_password_ru = input('Пароль: ')
register_password_en = input('Password: ')
register_login_ru = input('Логин: ')
register_login_en = input('Login: ')

login_login_ru = input('Логин: ')
login_login_en = input('Login: ')
login_password_ru = input('Пароль: ')
login_password_en = input('Password: ')

def createConfig(path):
    """
    Create a config file
    """
    config = configparser.ConfigParser()
    config.add_section("Settings")
    config.set("login", "1", "2")
    
    with open(path, "w") as config_file:
        config.write(config_file)
 

Vespan

loneliness
Автор темы
Проверенный
2,101
1,633
Ругается на табуляцию, в idle видно, что пробелов 8 примерно. Походу у тебя в VS Code стоит 8 пробелов. Посмотри внизу в строке Spaces
И вообще кидай код не скринами
так что нужно сделать?
(у меня на TAB 4 пробела(sublime text))
 

clrn1w

Известный
317
146
Python:
import time
import configparser
import os


config = configparser.ConfigParser()


def createConfig():
    """
    Create a config file
    """
    config.add_section("Login")
    config.set("Login", "login", '')
    config.set("Login", "password", '')
    config.add_section("Register")
    config.set("Register", "login", '')
    config.set("Register", "password", '')
   
    with open('info', "w") as config_file:
        config.write(config_file)


def register(arg):
    if arg == 'ru':
        login_input = input('Введите логин: ')
        config.set("Login", "login", 'login_input')
        with open('info', "w"):
            config.write('info')


def your_login_function(yes_no):
    if yes_no == 'да':
        login_login_ru = input('Хорошо,Введите ваш логин: ')  

    elif yes_no == 'нет':
        register('ru')
    elif yes_no == 'no':
        register('en')


if not os.path.exists('info'):
    createConfig()

language = input('Язык?language?(en/ru):')

if language == 'en':
    print('English language delivered')
    your_login = input('Are you registered?')
elif language == 'ru':
    print('Русский язык поставлен')
    your_login2 = input('Вы зарегистрированы?(да/нет): ')
    your_login_function(your_login2)
else: print('Ошибка,еще раз')

register_password_ru = input('Пароль: ')
register_password_en = input('Password: ')
register_login_ru = input('Логин: ')
register_login_en = input('Login: ')

login_login_ru = input('Логин: ')
login_login_en = input('Login: ')
login_password_ru = input('Пароль: ')
login_password_en = input('Password: ')

def createConfig(path):
    """
    Create a config file
    """
    config = configparser.ConfigParser()
    config.add_section("Settings")
    config.set("login", "1", "2")
    with open(path, "w") as config_file:
        config.write(config_file)
 
  • Нравится
Реакции: Vespan

Vespan

loneliness
Автор темы
Проверенный
2,101
1,633
Python:
import time
import configparser
import os


config = configparser.ConfigParser()


def createConfig():
    """
    Create a config file
    """
    config.add_section("Login")
    config.set("Login", "login", '')
    config.set("Login", "password", '')
    config.add_section("Register")
    config.set("Register", "login", '')
    config.set("Register", "password", '')
  
    with open('info', "w") as config_file:
        config.write(config_file)


def register(arg):
    if arg == 'ru':
        login_input = input('Введите логин: ')
        config.set("Login", "login", 'login_input')
        with open('info', "w"):
            config.write('info')


def your_login_function(yes_no):
    if yes_no == 'да':
        login_login_ru = input('Хорошо,Введите ваш логин: ') 

    elif yes_no == 'нет':
        register('ru')
    elif yes_no == 'no':
        register('en')


if not os.path.exists('info'):
    createConfig()

language = input('Язык?language?(en/ru):')

if language == 'en':
    print('English language delivered')
    your_login = input('Are you registered?')
elif language == 'ru':
    print('Русский язык поставлен')
    your_login2 = input('Вы зарегистрированы?(да/нет): ')
    your_login_function(your_login2)
else: print('Ошибка,еще раз')

register_password_ru = input('Пароль: ')
register_password_en = input('Password: ')
register_login_ru = input('Логин: ')
register_login_en = input('Login: ')

login_login_ru = input('Логин: ')
login_login_en = input('Login: ')
login_password_ru = input('Пароль: ')
login_password_en = input('Password: ')

def createConfig(path):
    """
    Create a config file
    """
    config = configparser.ConfigParser()
    config.add_section("Settings")
    config.set("login", "1", "2")
    with open(path, "w") as config_file:
        config.write(config_file)
1618716278389.png

Python:
def register(arg):
    if arg == 'ru':
        login_input = input('Введите логин: ')
        #config.read('info')       
        config.set("Login", "login", login_input)
        with open('info.ini', "w"):
            config.write('info.ini')
Почему не работает?
 

clrn1w

Известный
317
146
Посмотреть вложение 93542
Python:
def register(arg):
    if arg == 'ru':
        login_input = input('Введите логин: ')
        #config.read('info')      
        config.set("Login", "login", login_input)
        with open('info.ini', "w"):
            config.write('info.ini')
Почему не работает?
Говорит, что нету такой секции Login. Не работал с этой библиотекой, ничего сказать не могу
 

laiser

Известный
184
90
а что посоветуешь - что то с конфигом/.ini
Если тебе принципиально чтоб было .ini, то можешь использовать библиотеку configparser. Идеально подойдет для конфигов где будет храниться токены, настройки и т.п.
Но если тебе нужно больше, то лучше json, не так удобно читать(для новеньких), но туда можно засунуть все
UPD:
Ссори, чет даже не посмотрел код...

Python:
import configparser

config = configparser.ConfigParser()
config.read('setting.ini', encoding='utf-8') # имя файла
CONF = config['Setting']
bot = Bot(CONF['token']) # 12345

Как выглядит файл setting.ini

Код:
[Setting]
token= 12345
admin_id = 123
 
Последнее редактирование:

clrn1w

Известный
317
146
Если тебе принципиально чтоб было .ini, то можешь использовать библиотеку configparser. Идеально подойдет для конфигов где будет храниться токены, настройки и т.п.
Но если тебе нужно больше, то лучше json, не так удобно читать(для новеньких), но туда можно засунуть все
Посмотри выше, он пытался ее использоваться