Надо код поместить под функцию

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
Код:
import csv
import pickle
import shelve
a=input("Путь к файлу(/)")
b=input("Формат файла(csv;txt;dat)")
c=input("Формат файла в которий перенести(csv;txt;dat)")
#first=open("D:/Progect/Lab2/users.csv")

first=open(a+"."+b,)
lst=[]
while True:
   st = first.readline()
   if not st: break
   lst.append (st)
print(lst)
#second = open ( "users.txt", "w" )
second = open ( "users."+c, "w" )
second.write (str(lst))
second.close()

Думаю надо именно :
Код:
def prog():
    lst=[]

    while True:

           st = first.readline()

           if not st: break

  

    print(lst)
    return lst.append (st)

Сделать функцией , сделал такое оформление и не получил нечего
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
lst.append() добавляет элемент в список lst, и возвращает None.
return lst.append(...) то же самое, что return None.
 
  • Мне нравится
Реакции: Ini

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
а что тогда можно написать в return?
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Смотря что нужно.
 

lynulx

Модератор
Команда форума
Модератор
Авг 9, 2020
139
19
18
а что тогда можно написать в return?
аппенд изменяет объект. если вам нужен измененный объект - возвращайте измененный объект
 
  • Мне нравится
Реакции: Ini

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
мне нужно чтобы оно вернуло мне заполнений список , а им уже я хочу заполнить пустой файл . Вот код, он правильно работает но мне нужно сделать именно с функцией
Python:
a=input("Путь к файлу(/)")
b=input("Формат файла(csv;txt;dat)")
c=input("Формат файла в которий перенести(csv;txt;dat)")
#first=open("D:/Progect/Lab2/users.csv")

first=open(a+"."+b,)

lst=[]
while True:
   st = first.readline()
   if not st: break
   lst.append (st)
print(lst)
#second = open ( "users.txt", "w" )
second = open ( "users."+c, "w" )
second.write (str(lst))
second.close()
 

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
я просто не как не могу понять , вроде и все элементарно понятно но не понимаю
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 609
466
83
Python:
def func():
    lst = []
    while True:
        st = first.readline()
        if not st: break
        lst.append(st)
    return lst
 

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
спасибо, но так не работает оно выдает пустой список и пишет <function func at 0x00A387C0> в другом файле
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 609
466
83
покажите код как вы делаете
 

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
покажите код как вы делаете
Python:
a=input("Путь к файлу(/)")
b=input("Формат файла(csv;txt;dat)")
c=input("Формат файла в которий перенести(csv;txt;dat)")
#first=open("D:/Progect/Lab2/users.csv")

first=open(a+"."+b,)

lst=[]
while True:
   st = first.readline()
   if not st: break
   lst.append (st)
print(lst)
#second = open ( "users.txt", "w" )
second = open ( "users."+c, "w" )
second.write (str(lst))
second.close()
 

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
вот полный код
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 609
466
83
а где функция которая выдает <function func at 0x00A387C0> ?
 

Ini

Новичок
Пользователь
Окт 21, 2020
12
0
1
если в коде сделать функцию которую вы мне предложили то оно выдаст -<function func at 0x00A387C0> . Плюс я писал еще пару функций и оно или не видело , ил что было чаще выдавало такое вот. но код который я предоставил работает верно просто мне надо поместить его под функцию , а в итоге оно мне вместо заполненного List выдает что как я понял что он полностью пуст
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 609
466
83
пример записи из файла в файл через список на тектовиках (то что вы и делаете в своем коде )
Python:
def func(file_name):
    with open(file_name, 'r') as file:
        line = file.read().splitlines()
    return line


def func2(file_name):
    with open(file_name, 'w') as file:
        for i in func('test.txt'):
            file.write(i + '\n')


func2('test2.txt')
 

Форум IT Специалистов