1,判断所有重复的文件并执行删除
第一步:遍历出文件名
import os
for 文件夹路径,子文件夹列表,文件列表 in os.walk(r'C:\Users\17547\Desktop\SQL导入第二个文件夹'):
for 文件名 in os.scandir(文件夹路径):
print(文件名)
第二步:添加了if语句
import os
列表 =[]
for 文件夹路径,子文件夹列表,文件列表 in os.walk(r'C:\Users\17547\Desktop\SQL导入第二个文件夹'):
for 文件名 in os.scandir(文件夹路径):
if 文件名.is_file():
文件 = open(文件名,'rb').read()
if hash(文件) in 列表:
os.remove(文件名)
else:
列表.append(hash(文件))
2,正则表达式1
1.1 取出一列里都是数字的
import re
df1['numbers'] = df1['HBL'].apply(lambda x: re.sub('[^0-9]', '', x))
print(df1)
1.2 取出一列里所有的字母
import re
df1['letters'] = df1['HBL'].apply(lambda x: re.sub('[^A-Za-z]', '', x))
print(df1)
1.3 取出第二个字母到第四个字母(SHA)
df1['letters3'] = df1['HBL'].str[1:4]
print(df1)
1.4 取出含有这几个英文的 (SHA,SRG,SUB)然后放到新列里
df1['new_column'] = df1['HBL'].str.contains('(SHA|SRG|SUB)')
print(df1)
1.5 取出一列中以N开头,以6结尾的,不符合条件的输出为空白
import re
df1['new_column'] = df1['HBL'].apply(lambda x: re.search(r'^N.*6', x).group() if re.search(r'^N.*6', x) else '')
print(df1)
相反的,不要以N开头,以6结尾的
df1['new_column'] = df1['HBL'].apply(lambda x: x if not re.findall(r'^N.*6$', x) else '')
print(df1)
1.6取出开头是N到S的
df1['new_column'] = df1['HBL'].apply(lambda x: re.findall(r'^[N-S].*', x)[0] if re.findall(r'^[N-S].*', x) else '')
print(df1)
1.7取出中间是D到H的
df1['new_column'] = df1['HBL'].apply(lambda x: re.findall(r'^.*[D-H].*', x)[0] if re.findall(r'^.*[D-H].*', x) else '')
print(df1)
1.8取最后三个数字
wr['new_column'] = wr['Invoice No'].str.extract(r'(\d{3})$')