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

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

將文件中以“\”結(jié)尾的行連接在一起

將文件中以“\”結(jié)尾的行連接在一起

猛跑小豬 2021-08-11 22:01:24
我對(duì) python 真的很陌生,出于某種原因,這讓我難住了一段時(shí)間,所以我想我會(huì)尋求幫助。我正在開(kāi)發(fā)一個(gè) python 腳本,它可以讓我讀入我的文件,但是如果在行尾有一個(gè) '\' ,它會(huì)在它之后加入該行。所以如果這些行如下:: Student 1 : Student 2 \Student 3任何前面沒(méi)有冒號(hào)的行,如果前一行有 '\' 我想將它們組合成這樣:: Student 2 Student 3這是我嘗試過(guò)的:s = ""    if line.endswith('\\'):    s.join(line) ## line being the line read from the file任何正確方向的幫助都會(huì)很棒
查看完整描述

3 回答

?
收到一只叮咚

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

s.join不會(huì)做你認(rèn)為它會(huì)做的事情。還要考慮文件中的行有一個(gè)換行符 ( '\n') 所以.endswith('\\')不會(huì)因?yàn)檫@個(gè)原因被捕獲。


像這樣的東西(雖然方法有些不同)


output = ''

with open('/path/to/file.txt') as f:

    for line in f:

        if line.rstrip().endswith('\\'):

            next_line = next(f)

            line = line.rstrip()[:-1] + next_line

        output += line

在上面,我們?cè)?jīng)line.rstrip()讀取任何尾隨空格(換行符),以便該.endswith方法正確匹配。


如果一行以 結(jié)尾\,我們繼續(xù)使用內(nèi)置函數(shù)將下一行從文件生成器中拉出next。


最后,我們組合該行和下一行,注意再次刪除空格 ( .rstrip()) 和\字符([:-1]表示直到最后一個(gè)字符的所有字符)并取新行并將其添加到輸出中。


結(jié)果字符串像這樣打印出來(lái)


: Student 1 

: Student 2 Student 3

注意s.join... 最好將其解釋為 ,的反義詞split,s用作分隔符(或連接)字符。


>>> "foo.bar.baz".split('.')

['foo', 'bar', 'baz']

>>> "|".join(['foo', 'bar', 'baz'])

'foo|bar|baz'


查看完整回答
反對(duì) 回復(fù) 2021-08-11
?
qq_遁去的一_1

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

如果您可以讀取完整文件而不將其拆分為行,則可以使用正則表達(dá)式:


import re


text = """

: Student 1 

: Student 2 \

Student 3

""".strip()


print(re.sub(r'\\\s*\n[^:]', ' ', text))


: Student 1 

: Student 2 Student 3

正則表達(dá)式匹配出現(xiàn)的\后跟新行和不是:.


查看完整回答
反對(duì) 回復(fù) 2021-08-11
?
慕田峪9158850

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

如果以字符串列表開(kāi)頭,則可以使用regex和join來(lái)避免循環(huán)。


l = ['a\\', 'b','c']

s = '_'.join(l)

lx = re.split(r'(?<!\\)_', s) # use negative lookbehind to only split underscore with no `\` before it

[e.replace('\\_', '') for e in lx] # replace with '', ' ' if you need so.

輸出:


['ab', 'c']


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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