一个python问题

m
mysunnyday
楼主 (北美华人网)
1 23,959     2 2,963,139 1 7,538,251

上面这组数字是我从一个pdf文件里抓下来的,其实它们应该是“123,959 22,963,139 17,538,251”, 不知道为什么这些数字第一个digit和第二个digit之间会有空白,怎样才能把它们变成“123,959 22,963,139 17,538,251”?
谢谢指教!
o
oqo
回复 1楼mysunnyday的帖子
123,959 22,963,139 17,538,251之间是怎么分割的
星月花草
回复 1楼mysunnyday的帖子
直接Google啊,大姐!
m
mysunnyday
回复 1楼mysunnyday的帖子
123,959 22,963,139 17,538,251之间是怎么分割的
oqo 发表于 2022-10-24 23:03

用空白space分割
m
mysunnyday
回复 1楼mysunnyday的帖子
直接Google啊,大姐!
星月花草 发表于 2022-10-24 23:06

Google过了,没看到解决方法
m
mrr666
楼主怎么从pdf抓数字下来? ocr么? 估计是之间有过多的空白pixel
m
mysunnyday
楼主怎么从pdf抓数字下来? ocr么? 估计是之间有过多的空白pixel
mrr666 发表于 2022-10-24 23:07

用pdfplumber
m
mrr666
回复 7楼mysunnyday的帖子
啊 这个我就不太清楚了 如果有setting可以把setting设大一些 也就是就算有空了几个pixels 还是会认为是一个连续的单词 你查查doc
t
ted.hanks
为什么抓下来有空格,你要看postscript 是怎么写的啊。 如果仅仅是去空格容易啊。
``` "1 23,959     2 2,963,139 1 7,538,251".replace(' ', '') ```
被逼成了怨妇
regular express, 把所有的数字抓下来,再format
m
mrr666
我猜楼主问的是怎么自动让他detect到正确的数字 你可以去查一下opencv 里面有图像预处理相关的内容 有一个是可以让字模糊/边界往外渲染(忘了具体名称) 应该可以解决你的问题
被逼成了怨妇
你的把你的output type 列出来,大家才能给你code。都不知道你贴出来的是一个string 还是一个list。。。 如果是list, loop through,用strip() 把white space 给remove掉就可以了。
H
Hesterhql
中间那段空白 贴notepad ++ 看看 估计里面不是空格 估计是tab什么的
m
mrr666
看了一下pdfplumber 楼主可以试试吧char.width 设大一点点试试
b
blueskysea
回复 1楼mysunnyday的帖子
假设这个是str0, str_list = str0.split(‘ ‘) # split by two blanks ’ ‘.join([s.replace(‘ ‘, ‘’) for s in str_list])
b
babybaby
这和python有什么关系,一个command line sed就可以解决的问题
大喜妞
回复 1楼mysunnyday的帖子
假设这个是str0, str_list = str0.split(‘ ‘) # split by two blanks ’ ‘.join([s.replace(‘ ‘, ‘’) for s in str_list])

blueskysea 发表于 2022-10-24 23:31

对,大致就是这个。 不过最好不要用loop, 慢。用apply 或者 map