-
20181205Python 自动化笔试题,挑战你的知识库
2020-07-24 10:55import os,hashlib class get_file(): def __init__(self,path): self.path=path """path 通过传入制定路径,获取路径下的所有文件名字返回一个1维列表""" self.file_name=[] for (dirpath, dirnames, filenames) in os.walk(self.path): if filenames: self.file_name.append(filenames) self.old_file_name=[] for i in self.file_name: for j in i: self.old_file_name.append(j) self.old_file_name print("old_file ",self.old_file_name) def count_file(self,filename): count=0 for i in self.old_file_name: if filename ==i: count=count+1 return count def getBigFileMD5(self,filepath): """获取文件的md5值,防止因为文件过大而发生读取错误,采用分段读取""" if os.path.isfile(filepath): file_md5 = hashlib.md5() maxbuf = 8192 #设置每次读取的字节数 f = open(filepath,'rb') while True: buf = f.read(maxbuf) if not buf: break #每次读取设置的字节数大小,直到读完后跳出循环 file_md5.update(buf) #用数据中的字节更新哈希对象,重复调用相当于链接起来 f.close() hash = file_md5.hexdigest() return str(hash).upper() return None def unique_absfile(self): """判断文件名在所有文件的列表中出现的次数,大于1则更改文件名字为md5值,并且保留后缀名字, 方法返回处理后的文件名字(绝对路径)的列表""" pathname=[] for (dirpath, dirnames, filenames) in os.walk(self.path): for filename in filenames: if self.count_file(filename)>1: #判断文件名字是否重复 file_first_name=filename.split(".")[0] file_last_name=filename.split(".")[1] path_name=os.path.join(dirpath, filename) #获取重复文件名字的绝对路径 new_filename=self.getBigFileMD5(path_name)+"."+file_last_name#保证改名后,文件的后缀名字不变 os.path.join(dirpath, new_filename) new_pathname=os.rename(path_name,new_pathname) pathname=pathname+[new_pathname ] else: pathname=pathname+[os.path.join(dirpath, filename)] return pathname def file_size(self,condition=10): """调用内部方法self.unique_absfile(),获得去重后的文件名字列表(文件名是绝对路径)""" """获取文件大小,以M为单位""" all_file=self.unique_absfile() file_name=[] for i in all_file: size = float((os.path.getsize(i)/1024)) if size>condition: if "\\" in i: file_name.append(i.split("\\")[-1]) else: file_name.append(i.split("/")[-1]) return file_name -
20181205Python 自动化笔试题,挑战你的知识库
2020-07-24 10:55import os,hashlib
class get_file():
def init(self,path):
self.path=path
"""path 通过传入制定路径,获取路径下的所有文件名字返回一个1维列表"""
self.file_name=[]
for (dirpath, dirnames, filenames) in os.walk(self.path):
if filenames:
self.file_name.append(filenames)
self.old_file_name=[]
for i in self.file_name:
for j in i:
self.old_file_name.append(j)
self.old_file_name
print("old_file ",self.old_file_name)def count_file(self,filename): count=0 for i in self.old_file_name: if filename ==i: count=count+1 return count def getBigFileMD5(self,filepath): """获取文件的md5值,防止因为文件过大而发生读取错误,采用分段读取""" if os.path.isfile(filepath): file_md5 = hashlib.md5() maxbuf = 8192 #设置每次读取的字节数 f = open(filepath,'rb') while True: buf = f.read(maxbuf) if not buf: break #每次读取设置的字节数大小,直到读完后跳出循环 file_md5.update(buf) #用数据中的字节更新哈希对象,重复调用相当于链接起来 f.close() hash = file_md5.hexdigest() return str(hash).upper() return None def unique_absfile(self): """判断文件名在所有文件的列表中出现的次数,大于1则更改文件名字为md5值,并且保留后缀名字, 方法返回处理后的文件名字(绝对路径)的列表""" pathname=[] for (dirpath, dirnames, filenames) in os.walk(self.path): for filename in filenames: if self.count_file(filename)>1: #判断文件名字是否重复 file_first_name=filename.split(".")[0] file_last_name=filename.split(".")[1] path_name=os.path.join(dirpath, filename) #获取重复文件名字的绝对路径 new_filename=self.getBigFileMD5(path_name)+"."+file_last_name#保证改名后,文件的后缀名字不变 new_pathname = os.path.join(dirpath, new_filename) new_pathname=os.rename(path_name,new_pathname) pathname=pathname+[new_pathname ] else: pathname=pathname+[os.path.join(dirpath, filename)] return pathname def file_size(self,condition=10): """调用内部方法self.unique_absfile(),获得去重后的文件名字列表(文件名是绝对路径)""" """获取文件大小,以M为单位""" all_file=self.unique_absfile() file_name=[] for i in all_file: size = float((os.path.getsize(i)/1024)) if size>condition: if "\\" in i: file_name.append(i.split("\\")[-1]) else: file_name.append(i.split("/")[-1]) return file_name -
20181205Python 自动化笔试题,挑战你的知识库
2020-07-24 10:55import os,hashlib
class get_file():
def init(self,path):
self.path=path
"""path 通过传入制定路径,获取路径下的所有文件名字返回一个1维列表"""
self.file_name=[]
for (dirpath, dirnames, filenames) in os.walk(self.path):
if filenames:
self.file_name.append(filenames)
self.old_file_name=[]
for i in self.file_name:
for j in i:
self.old_file_name.append(j)
self.old_file_name
print("old_file ",self.old_file_name)def count_file(self,filename): count=0 for i in self.old_file_name: if filename ==i: count=count+1 return count def getBigFileMD5(self,filepath): """获取文件的md5值,防止因为文件过大而发生读取错误,采用分段读取""" if os.path.isfile(filepath): file_md5 = hashlib.md5() maxbuf = 8192 #设置每次读取的字节数 f = open(filepath,'rb') while True: buf = f.read(maxbuf) if not buf: break #每次读取设置的字节数大小,直到读完后跳出循环 file_md5.update(buf) #用数据中的字节更新哈希对象,重复调用相当于链接起来 f.close() hash = file_md5.hexdigest() return str(hash).upper() return None def unique_absfile(self): """判断文件名在所有文件的列表中出现的次数,大于1则更改文件名字为md5值,并且保留后缀名字, 方法返回处理后的文件名字(绝对路径)的列表""" pathname=[] for (dirpath, dirnames, filenames) in os.walk(self.path): for filename in filenames: if self.count_file(filename)>1: #判断文件名字是否重复 file_first_name=filename.split(".")[0] file_last_name=filename.split(".")[1] path_name=os.path.join(dirpath, filename) #获取重复文件名字的绝对路径 new_filename=self.getBigFileMD5(path_name)+"."+file_last_name#保证改名后,文件的后缀名字不变 new_pathname = os.path.join(dirpath, new_filename) new_pathname=os.rename(path_name,new_pathname) pathname=pathname+[new_pathname ] else: pathname=pathname+[os.path.join(dirpath, filename)] return pathname def file_size(self,condition=10): """调用内部方法self.unique_absfile(),获得去重后的文件名字列表(文件名是绝对路径)""" """获取文件大小,以M为单位""" all_file=self.unique_absfile() file_name=[] for i in all_file: size = float((os.path.getsize(i)/1024)) if size>condition: if "\\" in i: file_name.append(i.split("\\")[-1]) else: file_name.append(i.split("/")[-1]) return file_name -
20181205Python 自动化笔试题,挑战你的知识库
2020-07-24 10:55# -*- coding: utf-8 -*- # @Time : 2018/12/5 10:21 # @Author : Monica # @Email : 498194410@qq.com # @File : os_practice.py import os import hashlib allfiles = [] templist = {} end_file = [] class GetFlie: def __init__(self, dirpath): self.dirpath = dirpath def get_all_file(self): # 通过os.walk获取目录下的所有文件名 for root, dirs, files in os.walk(self.dirpath): for file in files: # 判断size size = os.path.getsize(os.path.join(root, file)) if size >= 10485760: # 文件名添加到allfiles列表里 allfiles.append(os.path.join(root, file)) # 重命名 for i in range(len(allfiles)): # 如果md5在字典的key已存在 if self.get_md5(allfiles[i]) in templist.keys(): templist[self.get_md5(allfiles[i]) + str(i)] = allfiles[i].split(".")[0] + str(i) + "." + allfiles[i].split(".")[-1] else: templist[self.get_md5(allfiles[i])] = allfiles[i] # 最后的文件 for file in templist.values(): end_file.append(file) return end_file @staticmethod def get_md5(filename): f = open(filename, 'rb') m1 = hashlib.md5() m1.update(f.read()) hash_code = m1.hexdigest() f.close() md5 = str(hash_code).lower() return md5 if __name__ == '__main__': path = r'I:\lesson_practice\tool' print(GetFlie(path).get_all_file()) -
关于 python 使用 pyxl 报错:PermissionError: [Errno 13] Permission denied: 'python12.xlsx'
2020-07-24 10:55👏 very good!!!!
-
Python13 期字符串大考核!!!
2020-07-24 10:55a = 'sdSdsfdAdsdsdfsfdsdASDSDFDSFa'
b=a.swapcase()
print(a.swapcase())
first=''
for i in a:
if i.islower():
first = first + i.upper()
else:
first = first + i.lower()last=''
for i in a:
if i.islower():
last=last+chr(219 - ord(i))
else:
last = last + chr(155 - ord(i))
print (first)
print(last) -
Python13 期字符串大考核!!!
2020-07-24 10:55a='sdSdsfdAdsdsdfsfdsdASDSDFDSFa'
print(a.upper())
print(a.lower())
print(a.swapcase())
b=a.swapcase()
c=''
for i in b:
if i.isupper():
i=chr(155-ord(i))
c +=i
elif i.islower():
i=chr(219-ord(i))
c +=i
print(c) -
Python13 期字符串大考核!!!
2020-07-24 10:55#请用自己目前所学实现字符串大写转小写,小写变大写,并且将字符串变为镜像字符串。例如:’A’变为’Z’,’b’变为’y
示范字符串: ”sdSdsfdAdsdsdfsfdsdASDSDFDSFa”字符串大写变小写,小写变大写,然后最后变为镜像字符串。
str_1="sdSdsfdAdsdsdfsfdsdASDSDFDSFa"
#大小写互换
str_2=str_1.swapcase()
print(str_2)
#变成镜像字符串
str=''
for i in range(len(str_2)):
if str_2[i].isupper():
str+= chr(155-ord(str_2[i]))
if str_2[i].islower():
str+= chr(219-ord(str_2[i]))
print(str) -
Python13 期字符串大考核!!!
2020-07-24 10:55a = 'sdSdsfdAdsdsdfsfdsdASDSDFDSFa'
#字符串a大小写互换
s = a.swapcase()
print('s大小写互换后为:',s)
s.replace('A','Z')
s.replace('b','y')
print(s) -
Python13 期字符串大考核!!!
2020-07-24 10:55s="sdSdsfdAdsdsdfsfdsdASDSDFDSFa"
print(s.upper())
print(s.lower())
print(s.swapcase())print("替换前:",s)
s_1=s.replace('s','h')
s_2=s_1.replace('S','H')
s_3=s_2.replace('f','u')
s_4=s_3.replace('A','Z')
s_5=s_4.replace('D','W')
s_6=s_5.replace('F','U')
s_7=s_6.replace('d','w')
s_8=s_7.replace('a','z')
print("替换后:",s_8) -
Python13 期字符串大考核!!!
2020-07-24 10:55s="sdSdsfdAdsdsdfsfdsdASDSDFDSFa"
s1=s.swapcase()
print("调整之后的字符串为",s1)
new_s=''
for i in s1:
if i.islower():
i = chr(219-ord(i))
new_s +=i
elif i.isupper():
i=chr(155-ord(i))
new_s += i
print("镜像之后的值:", new_s) -
Python13 期字符串大考核!!!
2020-07-24 10:55a='sdSdsfdAdsdsdfsfdsdASDSDFDSFa'
print (a.swapcase())
#字符串大小写转换
a='sdSdsfdAdsdsdfsfdsdASDSDFDSFa'
s = ''
for i in a:
if i.islower():
i = chr(219 - ord(i))
s += i
elif i.isupper():
i = chr(155 - ord(i))
s += i
print(s)
#镜像字符串 -
Python13 期字符串大考核!!!
2020-07-24 10:55c='sdSdsfdAdsdsdfsfdsdASDSDFDSFa'
print(c.swapcase())
new_c=''
for i in c:
if i.islower():
i=chr(219-ord(i))
new_c += i
elif i.upper():
i=chr(155-ord(i))
new_c += i
print(new_c)结果:
SDsDSFDaDSDSDFSFDSDasdsdfdsfA
hwHwhuwZwhwhwuhuwhwZHWHWUWHUz -
Python13 期字符串大考核!!!
2020-07-24 10:55```python #实现字符串的大小写互换,并且将字符串镜像输出 # 实现镜像要用到chr函数和ord函数 a="sdSdsfdAdsdsdfsfdsdASDSDFDSFa" a_swa=a.swapcase()#完成大小写互换 b1=a_swa.replace("a",chr(219-ord("a"))) b2=b1.replace("A",chr(155-ord("A"))) c1=b2.replace("s",chr(219-ord("s"))) c2=c1.replace("S",chr(155-ord("S"))) d1=c2.replace("d",chr(219-ord("d"))) d2=d1.replace("D",chr(155-ord("D"))) e1=d2.replace("f",chr(219-ord("f"))) e2=e1.replace("F",chr(155-ord("F"))) print('''----输出结果如下---- 大小写互换:{} 镜像输出: {}'''.format(a_swa,e2)) ----输出结果如下---- 大小写互换:SDsDSFDaDSDSDFSFDSDasdsdfdsfA 镜像输出: HWhWHUWzWHWHWUHUWHWzhwhwuwhuZ -
Python13 期字符串大考核!!!
2020-07-24 10:55#示例一:小写变大写
msg_1 = 'my name is sophia'
print('小写变大写后是:'+msg_1.upper())#示例二:大写变小写
msg_2 = 'MY NAME IS SOPHIA'
print('大写变大写后是:'+msg_2.lower())#示例三:大写变小写,小写变大写,生成镜像字符串;利用字符串的内置方法来解决
def change_msg_3(s):
s = s.swapcase()#互换大小写
in_tab = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
out_tab = 'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba'
reflect = s.maketrans(in_tab, out_tab)#建立翻译表
s = s.translate(reflect)#根据翻译表进行翻译
return s
if name == 'main':
s = 'MynameisSOPHIA'
new_s = change_msg_3(s)
print("转换之前的字符串:", s)
print("转换之后的字符串:", new_s)





























