Python文件和数据格式化(第7周)

文本的平均列数

  • 打印输出附件文件的平均列数,计算方法如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
  • (1)有效行指包含至少一个字符的行,不计算空行;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
  • (2)每行的列数为其有效字符数;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
  • (3)平均列数为有效行的列数平均值,采用四舍五入方式取整数进位。
f = open("latex.log")
tot = 0
line = 0
for i in f:
    i = i.strip("\n")    # 把每一行的换行符去掉
    if i == "":      # 空行跳过
        continue
    tot += len(i)     # 总字符
    line += 1    # 总行数
print(round(tot/line))

CSV格式清洗与转换

  • ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬附件是一个CSV格式文件,提取数据进行如下格式转换:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
  • (1)按行进行倒序排列;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
  • (2)每行数据倒序排列;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
  • (3)使用分号(;)代替逗号(,)分割数据,无空格;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
  • 按照上述要求转换后将数据输出。
f = open("data.csv")
line = f.readlines()
line.reverse()    # 行进行倒序
for i in line:
    i = i.replace("\n", '')   # 去掉换行符
    i = i.replace(' ', '')    # 去掉空格
    a = i.split(',')     # 用逗号分隔
    a.reverse()     # 每行数据倒序
    print(';'.join(a))    # 添加分号

文件行数

f = open("latex.log")
s = 0
for line in f:
    line = line.strip('\n')  # 去掉每一行的换行符
    if len(line) == 0:
        continue   # 如果是空行就继续,不是空行就+1
    s += 1
print("共{}行".format(s))

文件字符分布

f = open("latex.log")
cc = 0    # 总字符数
d = {}    # 创建一个空字典
for i in range(26):     # 把所有的字符放进空字典里,值都是0
    d[chr(ord('a')+i)] = 0
for line in f:      # 遍历每一行
    for c in line:      # 遍历每一行的每个字符
        d[c] = d.get(c, 0) + 1      # 如果找到那个字符就+1
        cc += 1               # 总字符数+1
print("共{}字符".format(cc), end = '')
for i in range(26):            # 寻找不是0的字符键值对
    if d[chr(ord('a')+i)] != 0:
        print(",{}:{}".format(chr(ord('a')+i),d[chr(ord('a')+i)]), end = '')

文件独特行数

f = open("latex.log")
ls = f.readlines()     # 读取每一行
s = set(ls)   # 集合,不重复
for i in s:
    ls.remove(i)    # 去掉每个1行(这样独特行就不在ls里了)
t = set(ls)
print("共{}独特行".format(len(s)-len(t)))
f = open("latex.log")
ls = f.readlines()
d = {}
s = 0
for i in ls:     # 把每一行放进字典里,配置键值对
    d[i] = d.get(i, 0) + 1
for c in d.keys():      # 遍历每一个键值对,如果是1就s+1
    if d[c] == 1:
        s += 1
print("共{}独特行".format(s))

CSV格式列变换

f = open("data.csv")
for line in f:
    line = line.strip("\n")    # 把每一行的换行符删除
    ls = line.split(",")     # 用,把每一行的字符拆分开为列表
    ls = ls[::-1]      # 逆向返回列表
    print(",".join(ls))     # 再把逆序后的列表用,添加到列表里
f.close()

CSV格式数据清洗

f = open("data.csv")
s = f.read()    # 读出每个字符
s = s.replace(" ", "")   # 将空格替换成无
print(s)
f.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值