我正在尝试查找并打印此文件中的所有电话号码。但该文件有很多不可读的文本。 该文件看起来像这样,但后来真的很大: ë
如何解码并找到所有数字?我现在有以下代码:
import glob
import re
path = "C:\\Users\\Joey\\Downloads\\db_sdcard\\mysql\\ibdata1"
files= glob.glob(path)
for name in files:
with open(name, 'r') as f:
for line in f:
print line
match = re.search(r'(/b/d{2}-/d{8}/b)', line)
if match:
found = match.group()
print found
当我运行我的脚本时,我得到以下输出:
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
我必须在哪里放.decode('utf8')
并且我的代码是否为其他好处?
答案 0 :(得分:2)
尝试使用以下内容查找您的号码:
xx-xxxxxxxx
它会创建一个符合格式x
的所有匹配子字符串的列表,其中>>> line = ' P t\xe2\x82\xac \xc5\x92 \xc3\x98p\xe2\x82\xac Q~\xc3\x80t\xc3\xb406-23423230xx06-34893646xx secure_encryptedsecure_encrypted\xe2\x82\xac -\xe2\x82\xac -\xe2\x82\xac \n'
>>> re.findall("\d{2}-\d{8}", line)
['06-23423230', '06-34893646']
是一个数字。
当使用问题的最后一行作为例子时:
for name in files:
with open(name, 'r') as f:
for line in f:
matches = re.findall("\d{2}-\d{8}", line)
for mt in matches:
print mt
这是完整的陈述:
print
这将findall
每个匹配在不同的行上。
您甚至可以同时for name in files:
with open(name, 'r') as f:
matches = re.findall("\d{2}-\d{8}", f.read())
for mt in matches:
print mt
整个文件中的匹配项:
Camera.getPicture({
quality: 75,
targetWidth: 320,
targetHeight: 320,
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
destinationType: navigator.camera.DestinationType.FILE_URI,
saveToPhotoAlbum: false
}).then(function (imageURI) {
var the_file = new Blob([imageURI], { type: 'image/jpeg' });
$scope.srcImage = imageURI;
$scope.upload(the_file);
}, function (err) {
console.err(err);
});
};
$scope.upload = function (file) {
alert(file);
BubbleFactory.UploadImage($scope.bubbleId, file).then(function (resp) {
console.log(resp + $scope.bubbleId);
$scope.post.Text = resp;
$scope.PostMessage($scope.post);
//console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
}, function (resp) {
console.log('Error status: ' + resp.status);
}, function (evt) {
});
};