Python将字符串复制指定的次数

时间:2014-10-23 23:06:04

标签: python string text copy

我的文件phones.txt包含电话号码,每行一个电话就像这样

00000000
1111111
222222

我想创建一个python脚本,询问用户他想要创建多少个文件夹然后我希望脚本计算文件夹数量和文件中的行数phone.txt然后计算每次多少次将复制号码,然后将其复制到文件phone.txt

中的文件夹中

如果用户输入9,则脚本将在3号行号上显示9。这意味着第一个号码将被复制到前3个文件夹“1,2,3”,第二个号码将被复制到文件夹“4,5,6”,最后一个号码将被复制到文件夹“7,8,9”< / p>

现在我的代码: -

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 ? ####

我在这个地方停了下来,有什么帮助?

1 个答案:

答案 0 :(得分: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的数量分割的情况 例如。如果用户输入8并且有3个电话号码,则数字将被添加到文件夹中,如下所示:

  • '00000000'到文件夹1,2,3
  • '1111111'到文件夹4,5,6
  • '222222'到文件夹7,8