Найти - Пользователи
Полная версия: func() missing 1 required positional argument
Начало » Python для новичков » func() missing 1 required positional argument
1
Dmitriy_Z
Добрый день. Подскажите что не так?

 def func(file_open:'C:/Users/hp/Documents/питон/вставка номера коспар и названия ИСЗ/результат_1.txt', file_new:'C:/Users/hp/Documents/питон/вставка номера коспар и названия ИСЗ' ):
    '''
    функция сделана для частного случая
    :param file_open:путь к исходному файлу
    :param file_new: путь к новому файлу
    :return: "ок"
    '''
    target1 = r'(?<=^1\s)\d{5}'# это выбираем
    target2 = r'(?<=^2\s)\d{5}'# вместо этого вставляем
    copy = None
    sec = int(time.time())
    if file_new is None:# название сохраняемого файла по умолчанию
        file_new = f'new_data_{sec}.txt'
    with open(file_new,'a') as new_file:
        with open(file_open,'r') as file:
            strings = file.readlines()
            for s in strings:
                search = re.findall(target1,s)
                if search:
                    copy = search[0]
                if copy is not None:
                    s = re.sub(target2,copy,s)
                new_file.writelines(s)
    return "ok"
func('C:/Users/hp/Documents/питон/вставка номера коспар и названия ИСЗ/готовый_ТЛЕ.txt')
doza_and
Dmitriy_Z
Подскажите что не так?
0: При программировании необходимо понимать, и уметь объяснять смысл КАЖДОЙ написанной вами буквы. У вас похоже это не так. Остальное следствия
1. Вам надо почитать книжку по основам синтаксиса. Вы книжечку какую читаете?
2. Когда у вас есть сообщение об ошибке надо его прочесть и понять что вам пишут. Вы разобрались, перевели что там написано?
аргументы по умолчанию надо задавать так:
 def a(b="as"):
  ....
AD0DE412
это слешей не считая
xam1816
вот так было написано
 def func(file_open:str,file_new:str=None):

через двоеточие означает что аргумент должен быть тип str (string),т.е строка,а не число,это только как подсказка

для присваивания нужен знак =

 file_open='имя_файла(или\\полныый\\путь\\имя_файла'

если пишешь путь используй r перед строкой

 file_open=r'C:\Users\hp\Documents\питон\вставка номера коспар и названия ИСЗ\результат_1.txt'

и в назавниях избегай пробелов и кирилицы лучше через _
PEHDOM
AD0DE412
это слешей не считая
со слешами там все ок, пайтон кушает пути вида d: /path/to/file.txt
AD0DE412
PEHDOM
со слешами там все ок
и то верно, показалось что .. d:\path\to\file.txt
py.user.next
PEHDOM
со слешами там все ок, пайтон кушает пути вида d: /path/to/file.txt
Эти пути легальны для винды. Питон их не переделывает.
PEHDOM
py.user.next
Эти пути легальны для винды. Питон их не переделывает.
Пайтон их не переделывает, но вот насчет легальности я бы поспорил. Венда сама преобразовывает “/” в “\”, формально это не делает пут легальным, просто там вшита “защита от дурака”.
https://docs.microsoft.com/ru-ru/dotnet/standard/io/file-path-formats
в некоторых случаях это может не сработать. Пути к устройствам которые начинаются со знака вопроса, а не с точки не нормализуются. Но в таком случае и пайтон их “не скушает”.
py.user.next
PEHDOM
просто там вшита “защита от дурака”.
https://docs.microsoft.com/ru-ru/dotnet/standard/io/file-path-formats
Это инфа по .NET
Вот тут инфа по оболочкам винды wiki. path
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB