python解析文本

在看书的时候看到下面的内容觉得很难看,想把回车符去掉,换行符直接换行。思想是遍历,遇到<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

真是菜。

Python中,解析文本文件通常是指从文本文件读取数据,并将其转换成程序中可以使用的数据结构。Python提供了多种方法来实现这一过程,具体可以分为以下几种情况: 1. 纯文本文件(如.txt):这种文件通常包含了以换行符分隔的文本数据。可以使用Python内置的`open()`函数配合`read()`或`readlines()`方法来读取文件内容。对于简单的文本文件,通常直接读取整个文件内容到字符串中,然后利用字符串的`split()`等方法进行解析。 2. CSV文件:CSV(Comma-Separated Values)文件是一种常见的数据存储格式,每行代表一条记录,记录中的字段通常由逗号分隔。Python标准库中的`csv`模块提供了方便的CSV文件读写功能。可以使用`csv.reader()`来读取CSV文件,并通过迭代器逐行获取数据。 3. JSON文件:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。Python中可以使用`json`模块来解析JSON文件,利用`json.load()`函数可以直接将JSON文件内容加载到Python字典或列表等数据结构中。 4. XML文件:XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言。解析XML文件可以使用`xml.etree.ElementTree`模块,这个模块提供了方便的API来解析和创建XML数据。 下面提供一个简单的Python脚本示例,用于读取解析一个简单的文本文件: ```python # 假设有一个名为data.txt的文本文件内容如下: # name,age # Alice,25 # Bob,30 # Carol,22 # 使用Python读取解析这个文件 file_path = 'data.txt' with open(file_path, 'r', encoding='utf-8') as file: # 跳过标题行 next(file) for line in file: # 分割每行的数据 name, age = line.strip().split(',') print(f"Name: {name}, Age: {age}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值