Чтобы получить только номер телефона во многих файлах Excel, вы можете попробовать следующий код:
import pandas as pd
import xlrd
import os
mydir = (os.getcwd()).replace('\\','/') + '/'
#Get all excel files include subdir
filelist=[]
for path, subdirs, files in os.walk(mydir):
for file in files:
if (file.endswith('.xlsx') or file.endswith('.xls') or file.endswith('.XLS')):
filelist.append(os.path.join(path, file))
number_of_files=len(filelist)
# Get data of cells from excel
data=[]
for i in range(number_of_files):
#df.append(pd.read_excel(r''+ mydir +filelist[i]))
df=pd.read_excel(r''+filelist[i])
l=len(df.iloc[0])
for n in range(l):
if len(str(df.iloc[0][n])) >= 10:
data.append(df.iloc[:][df.axes[1][n]])
break
res=[]
for i in range(len(data)):
res.append(data[i].values.tolist())
print(res)
Чтобы получить все данные телефона из имени другого столбца, используется длина номера телефона, чтобы отличить его от другого столбца.данные.Для этого случая я использовал длину телефонного номера, используемого в моей стране, который составляет 11 (например, 82330403045).
Выход:
>>> data
[0 82330403045
1 82330403046
2 82330403047
3 82330403048
Name: Phone, dtype: int64, 0 82330403049
1 82330403050
2 82330403051
3 82330403052
Name: PhoneCell, dtype: int64]
>>> res
[[82330403045, 82330403046, 82330403047, 82330403048], [82330403049, 82330403050, 82330403051, 82330403052], [82330403049, 82330403050, 82330403051, 82330403052], [82330403045, 82330403046, 82330403047, 82330403048], [82330403049, 82330403050, 82330403051, 82330403052], [82330403049, 82330403050, 82330403051, 82330403052]]
Вы можете использовать эти выходные данные дляваша база данных.
Мои файлы Excel:
![](https://i.stack.imgur.com/6PrDn.png)
Файл Book1.xlsx:
![](https://i.stack.imgur.com/xwP5P.png)
Файл Book2.xlsx:
![](https://i.stack.imgur.com/VPNcC.png)