如何在文件上反复写入相同的数据?

2024-05-12 21:47:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个脚本,让我写N倍的同一段数据,但我不知道如何做,你能帮我吗

我试过这个:

fin = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\1212.osg", "rt")
fout = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\testreecrtiure.osg", "wt")

for line in fin:
             fout.write(line.write("...."))

但我不知道我是否必须使用循环或类似的东西


Tags: 数据脚本lineopendatasetwritertwt
2条回答

试试这个:

fin = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\1212.osg", "r")
fout = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\testreecrtiure.osg", "w")


for line in fin:
    fout.write(line)

fin.seek(0,0)

for line in fin:
    fout.write(line)

完成“读写”后,“fin”的指针应移到开头

因此,在开始另一个“读写”之前,需要添加以下行:fin.seek(0,0)

下面是写N次的代码

fin = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\1212.osg", "r")
fout = open("C:\\ProgramData\\OutilTestObjets3D\\MaquetteCB-2019\\DataSet\\testreecrtiure.osg", "w")

N=5  # For example, repeat 5 times
for count in range(0,N):
    for line in fin:
        fout.write(line)
    fin.seek(0,0)

下面是一个简单的实现,它将输入文件写入42次

with open('output', 'w') as fout:
    for x in range(42):
        with open('input', 'r') as fin:
            for line in fin:
                fout.write(line)

如果愿意,您可以使用seek()倒带输入文件,而不是重复关闭和重新打开输入文件;但我更喜欢这种方法,它还负责在最后自动关闭两个文件,这是您在代码中忘记的

(您可能应该避免在代码中硬编码绝对路径。)

相关问题 更多 >