将旧文件中已有换行符的行打印到同一行中的新文件中

时间:2017-05-29 13:57:49

标签: python

我希望newline只能在3个句子之间打印一次。但是,通过以下code,在新newline句之前,每个句子都打印了newline和另外一个index

with open(convert_file) as infile:
for line in infile:
    with open('convert-profile.txt', "a") as f1:
        if "index" in line:
            f1.write("\n"+line)
        elif "scan start time" in line:
            f1.write(line)  
        elif "binary: [4]" in line:
            f1.write(line)
        f1.close

我猜是因为旧文件index中的每个scan timebinaryconvert_file都以newline结尾。 如何在同一line中附加这三个并将它们写在新文件中?

另一件事,当我对"w"使用print模式时,它似乎继续在第一行打印。最后,我得到一个空白文件。如果我希望每当code "w"无效时运行getLocationJson(term: string) { var term = "Mechelsesteenweg+64"; return this._http.get('https://maps.googleapis.com/maps/api/geocode/json?address=Someroad+64&key=AIzkeystuffjXDm6eU5mPP9Nczg') .subscribe((json: any) => { var obj = JSON.parse(json); var jsonParsed = obj["results"]; }); } ,我应该使用什么模式重写文件?

1 个答案:

答案 0 :(得分:2)

我建议您首先为要编写的行构建string,然后编写整行。如果您要删除换行character,则应使用line.rstrip(),如下所示:

    line = line.rstrip()
    result = ''
    if "index" in line:
        result += line
    elif "scan start time" in line:
        result += line
    elif "binary: [4]" in line:
        result += line
    result += '\n'

对于模式,with open('convert-profile.txt', 'w') as f1:应该可以正常工作。