web-dev-qa-db-ja.com

文字列から\ nと\ rを削除する方法

私は現在、このウェブサイトからコードを取得しようとしています: http://netherkingdom.netai.net/pycake.html その後、pythonスクリプト解析すべてhtml divタグでコードを記述し、最後にdivタグの間からテキストをファイルに書き込みます。問題は、ファイルに\ rと\ nの束を追加することです。 n。ここに私のコードがあります:

import urllib.request
from html.parser import HTMLParser
import re
page = urllib.request.urlopen('http://netherkingdom.netai.net/pycake.html')
t = page.read()
class MyHTMLParser(HTMLParser):
    def handle_data(self, data):
        print(data)
        f = open('/Users/austinhitt/Desktop/Test.py', 'r')
        t = f.read()
        f = open('/Users/austinhitt/Desktop/Test.py', 'w')
        f.write(t + '\n' + data)
        f.close()
parser = MyHTMLParser()
t = t.decode()
parser.feed(t)

そして、それはそれが作る結果のファイルです:

b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'

できれば、先頭のb 'と最後の'を削除したいと思います。 MacでPython 3.5.1を使用しています。

11
HittmanA

簡単な解決策は、末尾の空白を削除することです:

_with open('gash.txt', 'r') as var:
    for line in var:
        line = line.rstrip()
        print(line)
_

rstrip()の_[:-2]_スライスの使用の利点は、これがUNIXスタイルのファイルでも安全であることです。

ただし、_\r_のみを削除し、行末にない場合は、str.replace()が友達です。

_line = line.replace('\r', '')
_

バイトオブジェクト(先頭の_b'_)がある場合、次を使用してネイティブのPython 3文字列に変換できます。

_line = line.decode()
_
20
cdarke