在看书的时候看到下面的内容觉得很难看,想把回车符去掉,换行符直接换行。思想是遍历,遇到<cr>
就直接索引加4,遇到<lf>
换行并且索引加4,其他正常输出。
文本如下:
GET /cs453/index.html HTTP/1.1<cr><lf>Host: gaia.cs.umass.edu<cr><lf>User-Agent: Mozilla/5.0 (Windows;U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax) <cr><lf>Accept:ext/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5<cr><lf>Accept-Language: en-us,en;q=0.5<cr><lf>Accept-Encoding: zip,deflate<cr><lf>Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<cr><lf>Keep-Alive: 300<cr><lf>Connection:keep-alive<cr><lf><cr><lf>
发现自己不会写代码,先从读文件开始吧:
f = open('data.txt', 'r')
data = f.read()
print(data)
这里说python中读取文件要这么写:
with open('/path/to/file', 'r') as f:
data = f.read()
fro循环要怎么写呢?
通过序列索引迭代(参考):
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
print
第打印一个字符就要换行。
怎样使 Python 输出时不换行?
print('.', end='')
我想索引加3或者加4怎么办呢?发现python的for不能修改索引,可以用while。
python 中的for循环如何修改循环变量?
i = 0
length = len(seq)
while i < length:
#just do it
i += 1
终于写出来了:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 22 22:00:31 2018
@author: itsc
"""
filename = 'data.txt'
f = open(filename, 'r')
data = f.read()
i = 0
length = len(data)-5
while i < length:
if data[i:i+4] == '<cr>':
i += 3
elif data[i:i+4] == '<lf>':
print()
i += 3
else:
print(data[i], end='')
i += 1
输出:
GET /cs453/index.html HTTP/1.1
Host: gaia.cs.umass.edu
User-Agent: Mozilla/5.0 (Windows;U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
Accept:ext/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: zip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection:keep-alive
真是菜。