首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python将一个单词移到行尾。

使用python将一个单词移到行尾。
EN

Stack Overflow用户
提问于 2019-03-08 10:48:05
回答 2查看 421关注 0票数 3

我正在解析一个HTML,我得到了一串数组,我试图清理它,并在以后将其放入pdf中。在这个级别上,我想把@X开始的所有单词移到行的末尾,这样我就可以让所有的@X对齐了。

代码语言:javascript
复制
Hello World @Xabs
Hello World                                   @Xz
Hello World  @Xss
Hello World         @Xssa
Hello World       @Xqq
Hello World             @Xsasas

作为输出,我想要的是:

代码语言:javascript
复制
Hello World                                        @Xabs
Hello World                                        @Xz
Hello World                                        @Xss
Hello World                                        @Xssa
Hello World                                        @Xqq
Hello World                                        @Xsaxs

有什么想法吗?

到目前为止我所拥有的是:

代码语言:javascript
复制
# encoding=utf8 
import sys
reload(sys) 
#import from lxml import html 
from bs4 import BeautifulSoup as soup 
import re import codecs 
sys.setdefaultencoding('utf8') 

# Access to the local URL(Html file) f=codecs.open("C:\...\file.html", 'r') 
page = f.read() 
f.close() 

#html 
parsing page_soup = soup(page,"html.parser") 
tree = html.fromstring(page) # extract the important arrays of string 

a_s= page_soup.find_all("td", {"class" :"row_cell"})
for a in a_s:
    result = a.text.replace("@X","")
    print(final_result)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-08 11:09:07

与@blue_note的回答非常相似,但使整个解决方案更加自动化:

代码语言:javascript
复制
import re

lines = ['Hello World @Xabs',
         'Hello World                                   @Xz',
         'Hello World  @Xss',
         'Hello World         @Xssa',
         'Hello World       @Xqq',
         'Hello World             @Xsasas']

aligned_lines = []
for line in lines:
    match = re.findall('@X\w+', line)[0]
    line = line.replace(match,'')
    aligned_lines.append('%-50s %s' % (line, match))

aligned_lines

['Hello World                                        @Xabs',
 'Hello World                                        @Xz',
 'Hello World                                        @Xss',
 'Hello World                                        @Xssa',
 'Hello World                                        @Xqq',
 'Hello World                                        @Xsasas']
票数 1
EN

Stack Overflow用户

发布于 2019-03-08 10:54:50

字符串中没有特定的线宽概念.如果要对齐文本,请用恒定宽度打印第一部分。

代码语言:javascript
复制
output = "{:50s} {}".format('preceding text', 'Xword')
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55061589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档