如何在Python中使用循环创建字符串并保存到文件中

0 投票
5 回答
899 浏览
提问于 2025-04-18 01:00

我想创建一个字符串:

"FILE1 blabla2\nFILE2 blabla4 ..."

并把它保存到一个文件里。请注意,文件中的每一行第二个数字都是第一个数字的两倍。最后的效果应该是这样的:

FILE1 blabla2
FILE2 blabla4
...

但是因为我有很多行这样的模式,手动去做效率太低了。我想用Python来实现这个目的。我想象可能可以用:

join()

但我不太清楚具体怎么做。任何帮助都很感激。

5 个回答

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
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)

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

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

假设你有一个数字的上限,你可以这样做。

>>> "\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)]))

撰写回答