小编use*_*376的帖子

与参数一起使用时,lxml etree.parse不起作用

我有一个脚本来解析一个html文件,该脚本运行得很好,直到我对其稍作更改,从而可以从终端运行它,如下所示:

python myscript.py filename
Run Code Online (Sandbox Code Playgroud)

因此,当指示要解析的文件的直接名称时,它将起作用:

tree = etree.parse("folder/filename.html")
places = []

def f1():

   for dfn in tree.getiterator('dfn'):
   ...
   return places
def main():

   f1()
   file_places = open('list_places.txt', 'w')
   for x in sorted(places):
       print>>file_places, x
Run Code Online (Sandbox Code Playgroud)

然后,我没有指定文件的确切名称,而是指定了一个变量,然后该变量应在命令行中用作参数:

 args=sys.argv[1:]
 filename = sys.argv[0]
 tree = etree.parse(filename)
 places = []

 def extract_places():

     for dfn in tree.getiterator('dfn'):
     ...
     return places
 def main():
      if len(args) < 1:
          print 'usage: extract.py [file ...]'
          sys.exit(1)

      else:
            extract_places()
            file_places = open('list_places.txt', 'w')
            for x in sorted(places):
                print>>file_places, x
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:追溯(最近一次呼叫过去):

File "extract.py", …
Run Code Online (Sandbox Code Playgroud)

python parsing lxml xml.etree

2
推荐指数
1
解决办法
1659
查看次数

比较元素相对于另一个元素

我有一个简单的html代码用于渲染数据库查询的输出,其中文本部分由行分隔:

____________________
<p> Title1 <p>
<span>blablablablablablablabla</span>
____________________
<p> Title2 <p>
<span>blablablablablablablablablablablablablablablabla</span>
Run Code Online (Sandbox Code Playgroud)

如何自动调整这些行的长度,使它们与页面上最长的行一样长,如下所示:

________________________________________________
Title1 
blablablablablablablabla
________________________________________________
Title2
blablablablablablablablablablablablablablablabla
Run Code Online (Sandbox Code Playgroud)

html css

1
推荐指数
1
解决办法
67
查看次数

标签 统计

css ×1

html ×1

lxml ×1

parsing ×1

python ×1

xml.etree ×1