2014-10-23 2 views
0

у меня есть файл phones.txt, который содержит номера телефонов, один телефон в каждой строке, как этотPython скопировать строку для заданного числа раз

00000000 
1111111 
222222 

Я хочу, чтобы создать скрипт, питона, который запрашивает у пользователя, как многие папки, которые он хочет создать, тогда я хочу, чтобы скрипт вычислил количество папок и количество строк в файле phones.txt, а затем вычислить, сколько раз будет скопировано каждое число, а затем скопируйте его в папки в файле phone.txt

Как и в случае ввода пользователем 9, сценарий будет делить 9 на число строк, которое равно 3. Это означает, что первое число будет скопировано в первую 3-ю папку «1,2,3», а второе число будет скопировано в папки «4,5,6», а последнее - в папки «7,8,9»

Теперь мой код: -

folders = int(raw_input("How many folders for perfix {0} : ".format(name))) 
for i in range(folders): 
    pathname = os.path.join(fullPath, str(i+1)) 
    os.mkdir(pathname) 
    #### NOW WHAT TO DO HERE ? #### 

Я остановился в этом месте, любая помощь?

ответ

0

Вы можете использовать следующее:

import math 

# read the phone numbers from file 
with open('phone.txt', 'r') as f: 
    progs = f.read().splitlines() 

folders = input("How many folders for perfix {0} : ".format(name)) 
# calculate how many folders a number is in 
# therefore use the highest possible number (e.g. if folders is 8 use 3) 
num = int(math.ceil(float(folders)/len(progs))) 

# loop through the number of folders to create 
for i in xrange(folders): 
    # create folder 
    pathname = os.path.join(fullPath, str(i+1)) 
    os.mkdir(pathname) 

    # create file 
    filename = os.path.join(pathname, 'number.txt') 
    with open(filename, 'w') as f: 
     f.write(progs[i/num]) 


Это также работает в тех случаях, когда пользовательский ввод не является делимым числом progs.
E.g. если пользователь 8 и есть 3 номера телефона номер будет добавлен к папкам, как это:

  • '00000000' в папку 1,2,3
  • '1111111' в папке 4,5,6
  • '222222' в папку 7,8
+0

Привет, есть одна вещь, проги берутся из файла «phone.txt», а ваш код использует его как список? –

+0

он должен прочитать файл phone.txt, чтобы получить доступ, и это может быть больше, чем 3 строки –

+0

Я заменил строки кода - теперь номера телефонов поступают из файла. И код может обрабатывать более 3 строк. – friedi

Смежные вопросы