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

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

從帶有 readline 偏移量的文件中讀取行

從帶有 readline 偏移量的文件中讀取行

烙印99 2024-01-27 16:37:26
我想逐行讀取文件,但我想每?jī)纱巫x取時(shí)移動(dòng)行指針。該文件看起來(lái)像100200300400所以,如果我寫(xiě)line_1 = f.readline()  # 100line_2 = f.readline()  # 200然后在第三個(gè) readline 上,我將得到 300。我想通過(guò) readline 得到 100,而我想通過(guò)增量語(yǔ)句得到 200。然后我將把它們放入一個(gè)循環(huán)中,最后我想以這種方式獲取這些行:iteration #1: 100 and 200iteration #2: 200 and 300iteration #3: 300 and 400我怎樣才能做到這一點(diǎn)?
查看完整描述

3 回答

?
米琪卡哇伊

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

您可以創(chuàng)建一個(gè)生成器(它也會(huì)刪除 EOL 字符,如果您想要不同的東西,您可以刪除rstrip):


def readpairsoflines(f):

    l1 = f.readline().rstrip('\n')

    for l2 in f:

        l2 = l2.rstrip('\n')

        yield l1, l2

        l1 = l2

并像這樣使用它:


with open(filename) as f:

    for l1, l2 in readpairsoflines(f):

        # Do something with your pair of lines, for example print them

        print(f'{l1} and {l2}')

結(jié)果:


100 and 200

200 and 300

300 and 400

通過(guò)這種方法,僅讀取兩行并將其保存在內(nèi)存中。因此,它也適用于可能需要考慮內(nèi)存問(wèn)題的大文件。


查看完整回答
反對(duì) 回復(fù) 2024-01-27
?
守候你守候我

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

我總是喜歡簡(jiǎn)單易讀的解決方案(盡管有時(shí)不太“Pythonic”)。


with open("example.txt") as f:

    old = f.readline().rstrip()

    

    for line in f:

        line = line.rstrip()

        print("{} and  {}".format(old, line))

        old = line

在循環(huán)其余行之前執(zhí)行第一次讀取

然后,打印所需的輸出,并old更新字符串

需要調(diào)用 ion命令rstrip()來(lái)刪除不需要的尾隨'\n'

我認(rèn)為如果文件少于兩行,則無(wú)需打印任何內(nèi)容;可以輕松修改代碼以管理特殊情況下的任何需求

輸出:


100 and  200

200 and  300

300 and  400


查看完整回答
反對(duì) 回復(fù) 2024-01-27
?
蝴蝶刀刀

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

現(xiàn)在我建議像這樣將文檔分成換行符


with open('params.txt') as file:

    data = file.read()

data = data.split('\n')

for index, item in enumerate(data):

    try:

        print(str(item) + ' ' + str(data[index + 1]))

    except IndexError:

        print(str(item))

并使用一些列表邏輯打印您需要的內(nèi)容,因此此代碼的作用是創(chuàng)建所需值的列表(對(duì)于非常大的文件效率不高)并獲取它們的索引,因此當(dāng)它打印該項(xiàng)目時(shí),它還會(huì)打印列表中的下一個(gè)項(xiàng)目,并且它對(duì)每個(gè)項(xiàng)目索引錯(cuò)誤執(zhí)行此操作是因?yàn)樽詈笠豁?xiàng)不會(huì)有下一項(xiàng),但您也可以通過(guò)使用 if else 語(yǔ)句來(lái)解決它


查看完整回答
反對(duì) 回復(fù) 2024-01-27
  • 3 回答
  • 0 關(guān)注
  • 286 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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