第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

寫入文件的最后一個(gè)字符的“退格”

寫入文件的最后一個(gè)字符的“退格”

九州編程 2021-03-16 13:14:15
我有一個(gè)輸出SQL文件的Python應(yīng)用程序:sql_string = "('" + name + "', " + age + "'),"output_files['sql'].write(os.linesep + sql_string)output_files['sql'].flush()這不是for循環(huán)完成的,而是在數(shù)據(jù)可用時(shí)寫入的。當(dāng)應(yīng)用程序完成運(yùn)行時(shí),是否有任何方法可以在最后一個(gè)逗號(hào)字符上“退格”,并用分號(hào)替換它?我確信可以通過在換行符前輸出逗號(hào)并使用全局Bool來確定是否有任何特定的“寫”是第一個(gè)寫操作,從而發(fā)明一些解決方法。但是,我認(rèn)為,只要可以在其上“退格”,該應(yīng)用程序就會(huì)更加干凈。當(dāng)然,成為Python也許有這么簡(jiǎn)單的方法!請(qǐng)注意,insert在此用例中,將每個(gè)值行放在一個(gè)列表中,然后將其內(nèi)嵌到列表中并不是可行的解決方案。
查看完整描述

3 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

使用生成器,例如:


def with_separator(data, sep):

    first = True:

    for datum in data:

        if first:

            first = False

        else:

            yield sep

        yield datum


with open("sdfasdfas", "w") as outf:

    for x in with_separator(sql_get_rows(), ",\n"):

        outf.write(x)

        # flush if needed

對(duì)于鐵桿迭代器的使用,這應(yīng)該可以幫助您入門:


In [11]: list( itertools.imap("".join, itertools.izip(itertools.chain([""], itertools.repeat(",\n")), "abc")) )

Out[11]: ['a', ',\nb', ',\nc']

如果您的數(shù)據(jù)使用命令式API(即不可迭代的),則將send()數(shù)據(jù)生成器:


def write_with_separator(filename, sep):

    with file(filename, "w"):

        first = True

        yield None

        while True:

            datum = yield None

            if first:

                first = False

            else:

                fout.write(sep)

            fout.write(datum)

            # flush if needed


writer = write_with_separator("somefilename", ",\n")

writer.next()  # can't send to just-started generator


# to be called when you get data

for row in sql_get_rows():

    writer.send(row)


查看完整回答
反對(duì) 回復(fù) 2021-03-31
  • 3 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)