file create

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
суть: создать много файлов txt с рандомной в них генерацией, но оно не работает, нужна помощь, не могли бы отредактировать изьяны)
import os
import shutil
import sys
from random import *

fileCreate_1 = input("Разрешение на создание файлов: ")#Согласие пользователя, на создание новых директорий.

list_1 = [randint(1,999) for el in range(randint(5,1005))]#Список с элементами, которые в последствии будут созданы в директории.

def fileCreate(): #Функция создания алгоритма.
if fileCreate_1 == "+": #Если в поле введённом с клавиатуры присутствует знак +, то можно начинать алгоритм.
for i in range(randint(2,10)): #Цикл создания файлов(их должно быть не меньше 5(по задумке они просто должны быть file(1), file(2) и т.д
with open(r"F:\DirectoryNew\file(1).txt", "r+", encoding= "utf-8") as file_1: #Непосредственно алгоритм создания файлов.
file_1.write(list_1) #Запись в файл, листа, которые мы предворительно создали с рандомной генерацией.
else:
print("Not now") #Если + нет, то отмена по выводу и созданию
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
код вставляйте через теги code, где пишите сообщение, чуть выше есть панель управления, там три точки -> код -> Python и туда вставляете свой фрагмент кода
по поводу вопроса, наверное так можно
Python:
from random import randint


fileCreate_1 = input("Разрешение на создание файлов: ")

def fileCreate():
    if fileCreate_1 == "+":
        for i in range(1, 10):
            list_1 = [randint(1, 999) for el in range(5, 1005)]
            with open('file{}.txt'.format(i), 'w') as f:
                f.writelines(str(list_1))
    else:
        print("Not now") 

fileCreate()
 

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
код вставляйте через теги code, где пишите сообщение, чуть выше есть панель управления, там три точки -> код -> Python и туда вставляете свой фрагмент кода
по поводу вопроса, наверное так можно
Python:
from random import randint


fileCreate_1 = input("Разрешение на создание файлов: ")

def fileCreate():
    if fileCreate_1 == "+":
        for i in range(1, 10):
            list_1 = [randint(1, 999) for el in range(5, 1005)]
            with open('file{}.txt'.format(i), 'w') as f:
                f.writelines(str(list_1))
    else:
        print("Not now")

fileCreate()
большое и огромное спасибо, не подскажете, а каким образом из всех этих файлов извлечь цифры и найти одинаковые?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
там может из списков их извлекать? зачем писать в файл а потом читать из этих же файлов?
 

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
там может из списков их извлекать? зачем писать в файл а потом читать из этих же файлов?
Да вот в том то и проблема, что условие таково:
Найти одинаковый элементы, которые содержаться во всех файлах и записать их в файл под названием result.txt
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
в условии не говориться что нужно читать файлы которые создали, можно взять из списков...
например так
Python:
from random import randint
from collections import Counter


fileCreate_1 = input("Разрешение на создание файлов: ")
result_list = []

def fileCreate():
    if fileCreate_1 == "+":
        for i in range(1, 6):
            list_1 = [randint(1, 999) for el in range(5, 1005)]
            result_list.append(list_1)
            with open('file{}.txt'.format(i), 'w') as f:
                f.writelines(str(list_1))
    else:
        print("Not now")


fileCreate()

result_list = [i for j in result_list for i in j]
with open('result.txt', 'w') as f:
    f.writelines(str(Counter(result_list)))
в файл result.txt пишется словарь, у которого ключ - это значения из файлов (списков), а значение - кол-во повторов во всех файлах (списках)
если нужно только значения из файлов (списков), то напишите f.writelines(str(Counter(result_list).keys()))
 

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
в условии не говориться что нужно читать файлы которые создали, можно взять из списков...
например так
Python:
from random import randint
from collections import Counter


fileCreate_1 = input("Разрешение на создание файлов: ")
result_list = []

def fileCreate():
    if fileCreate_1 == "+":
        for i in range(1, 6):
            list_1 = [randint(1, 999) for el in range(5, 1005)]
            result_list.append(list_1)
            with open('file{}.txt'.format(i), 'w') as f:
                f.writelines(str(list_1))
    else:
        print("Not now")


fileCreate()

result_list = [i for j in result_list for i in j]
with open('result.txt', 'w') as f:
    f.writelines(str(Counter(result_list)))
в файл result.txt пишется словарь, у которого ключ - это значения из файлов (списков), а значение - кол-во повторов во всех файлах (списках)
если нужно только значения из файлов (списков), то напишите f.writelines(str(Counter(result_list).keys()))
оно выдаёт пустой лист в блокноте
 

Вложения

  • Screenshot_90.png
    Screenshot_90.png
    203,3 КБ · Просмотры: 2

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
скиньте свой код...
 

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
скиньте свой код...
from random import *
import os
from collections import Counter

fileCreate_1 = input("Разрешение на создание файлов: ")
result_list = []

os.mkdir("F:\DirectionDZZ")

def fileCreate():
if fileCreate_1 == "+":
for i in range(1, 10):
list_1 = [randint(1, 1001) for el in range(1, 10001)]
with open(r"F:\DirectionDZZ\file{}.txt".format(i), "w") as file:
file.writelines(str(list_1))
else:
print("Not now")
fileCreate()

result_list = [i for j in result_list for i in j]
with open(r"F:\DirectionDZZ\result.txt", "w") as f:
f.writelines(str(Counter(result_list).keys()))
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
код вставляйте через теги code, где пишите сообщение, чуть выше есть панель управления, там три точки -> код -> Python и туда вставляете свой фрагмент кода, сколько можно повторять, скопируйте отсюда ваш код и попробуйте запустить....
внимательней читайте ответы...
вы ничего не пишите в result_list...
вот пример в вашем коде
Python:
from random import *
import os
from collections import Counter

fileCreate_1 = input("Разрешение на создание файлов: ")
result_list = []

os.mkdir("F:\DirectionDZZ")

def fileCreate():
    if fileCreate_1 == "+":
        for i in range(1, 10):
            list_1 = [randint(1, 1001) for el in range(1, 10001)]
            result_list.append(list_1)
            with open(r"F:\DirectionDZZ\file{}.txt".format(i), "w") as file:
                file.writelines(str(list_1))
    else:
        print("Not now")

fileCreate()

result_list = [i for j in result_list for i in j]
with open(r"F:\DirectionDZZ\result.txt", "w") as f:
    f.writelines(str(Counter(result_list).keys()))
 

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
код вставляйте через теги code, где пишите сообщение, чуть выше есть панель управления, там три точки -> код -> Python и туда вставляете свой фрагмент кода, сколько можно повторять, скопируйте отсюда ваш код и попробуйте запустить....
внимательней читайте ответы...
вы ничего не пишите в result_list...
вот пример в вашем коде
Python:
from random import *
import os
from collections import Counter

fileCreate_1 = input("Разрешение на создание файлов: ")
result_list = []

os.mkdir("F:\DirectionDZZ")

def fileCreate():
    if fileCreate_1 == "+":
        for i in range(1, 10):
            list_1 = [randint(1, 1001) for el in range(1, 10001)]
            result_list.append(list_1)
            with open(r"F:\DirectionDZZ\file{}.txt".format(i), "w") as file:
                file.writelines(str(list_1))
    else:
        print("Not now")

fileCreate()

result_list = [i for j in result_list for i in j]
with open(r"F:\DirectionDZZ\result.txt", "w") as f:
    f.writelines(str(Counter(result_list).keys()))
все пофиксилось, большое спасибо!
 

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