文本的平均列数
- 打印输出附件文件的平均列数,计算方法如下:
- (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()