如何在python中创建一个带循环的字符串并将其保存在文件中

时间:2014-04-02 13:27:41

标签: python string

我想创建一个字符串:

"FILE1 blabla2\nFILE2 blabla4 ..."

并将其保存在文件中。请注意,在文件的每一行中,第二个整数是第一个的两倍。最后看起来应该是这样的:

FILE1 blabla2
FILE2 blabla4
...

但是由于我有大量的这种模式,手动执行它是低效的。我想为此目的使用python。我可以想象它可能以某种方式完成:

join()

但我不确切知道如何。任何帮助表示赞赏。

5 个答案:

答案 0 :(得分:3)

假设您有数字的上限,您可以执行类似的操作。

>>> "\n".join(["FILE{} blabla{}".format(x, x*2) for x in xrange(1, 10)])
'FILE1 blabla2\nFILE2 blabla4\nFILE3 blabla6\nFILE4 blabla8\nFILE5 blabla10\nFILE6 blabla12\nFILE7 blabla14\nFILE8 blabla16\nFILE9 blabla18'

然后使用将这些文件写入文件。

with open('random.txt', 'a') as f:
    f.write("\n".join(["FILE{} blabla{}".format(x, x*2) for x in xrange(10)]))

答案 1 :(得分:1)

list_of_strings = [] 
for i in range(3):
    list_of_strings.append("FILE{0} blabla{1}".format(i, i*2))  # or whatever you need

'\n'.join(list_of_strings)

答案 2 :(得分:1)

n_lines = 2 # Actual number of lines you want

output = "\n".join(["FILE{} blabla{}".format(x, x*2) for x in xrange(1, n_lines+1)])

file = open("your_output_file", "w")

for line in output.split("\n"):
    file.write("{}\n".format(line))
file.close()

答案 3 :(得分:1)

你可以在(差不多)一个陈述中做到这一点:

with open("blabla.txt", "w") as bla:
    bla.write("\n".join("FILE%d blabla%d" % (i, i*2) for i in range(1, 5)))

或者如果您需要在以后重复使用,可以准备blabla的列表:

blabla = ["FILE%d blabla%d" % (i, i*2) for i in range(1, 5)] 
with open("blabla.txt", "w") as bla:
    for item in blabla:
        print >> bla, item # Note that this syntax add the new line without using "\n".join

答案 4 :(得分:0)