小编Kev*_*uan的帖子

在python中编写一个新的文本文件

我正在编写遍历文本文件的代码,计算每行中有多少单词,并且无法将结果(每行包含一个数字的多行)放入新的文本文件中.

我的代码:

in_file = open("our_input.txt")
out_file = open("output.txt", "w")


for line in in_file:
    line = (str(line)).split()
    x = (len(line))
    x = str(x)
    out_file.write(x)

in_file.close()  
out_file.close()
Run Code Online (Sandbox Code Playgroud)

但是我得到的文件将所有数字放在一行中.

如何在我正在制作的文件中分隔它们?

python split file python-3.x

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

为什么它不打印没有重复元组的元组列表?

所以我创建了一个功能,通过一个包含汽车制造商,城市mpg和高速公路mpg的元组列表.

def maker(mileage_list):
    maker_list = []
    for line in mileage_list:
        if line[2] not in maker_list:
            maker_tuple = (line[2],int(line[0]),int(line[1]))
            maker_list.append(maker_tuple)
    return maker_list
Run Code Online (Sandbox Code Playgroud)

如果

mileage_list = [('DODGE', 13, 18), ('DODGE', 16, 22), 
                ('DODGE', 16, 22), ('DODGE', 16, 21), 
                ('FORD', 16, 24), ('FORD', 20, 26), 
                ('FORD', 22, 28), ('FORD', 18, 24), 
                ('FORD', 34, 30), ('FORD', 12, 18)]
Run Code Online (Sandbox Code Playgroud)

它应该只打印maker_list =[('DODGE',13,18),('FORD',16,24)]但仍然打印出原始输入.

python python-3.x

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

使用python导航文件夹

我有一个文件夹ROOT和许多不同的文件夹(让我们假设N),为了简单起见,我称之为F1,F2等...

我需要使用这些文件夹中的文件.如果我只有一个文件夹,我知道我可以做:

os.chdir(".") #I'm workingo in ROOT
for filename in glob.glob("*.txt"):
    #I can work with the i-th file...
Run Code Online (Sandbox Code Playgroud)

但我需要做的是像这样(伪代码):

os.chdir(".") #I'm working in ROOT
for F-i-th in ROOT: #for each folder in the ROOT main folder
    for filename in F-i-th("*.txt"): #I select only the file with this extention
         #process data inside i-th file
Run Code Online (Sandbox Code Playgroud)

我的意思是我需要进入第一个文件夹(F1)并处理所有文件(或者如果它可能是所有的.txt文件),之后我应该进入F2并处理所有文件....

python directory

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

使用 Go 解组嵌套的 xml

我有以下代码片段,我一直在努力使其工作。我到处寻找解决方案,但我发现的所有解决方案似乎都不起作用。

我的xml.Unmarshal命令映射似乎有问题,因为它与嵌套字段有关。下面的代码用于检索名为 的第一个值,它位于unitxml 代码的顶层。

其他两个字段为零,它们嵌套了两级深。这意味着结构设置不正确。这是代码。

package main

import (
    "encoding/xml"
    "fmt"
)

type datevalue struct {
    Date  int     `xml:"date"`
    Value float32 `xml:"value"`
}

type pv struct {
    XMLName    xml.Name  `xml:"series"`
    Unit       string    `xml:"unit"`
    datevalues datevalue `xml:"values>dateValue"`
}

func main() {
    contents := `<series>
                   <timeUnit>DAY</timeUnit>
                   <unit>Wh</unit><measuredBy>INVERTER</measuredBy>
                   <values><dateValue>
                        <date>2015-11-04 00:00:00</date>
                        <value>5935.405</value>
                   </dateValue></values>
                </series>`

    m := &pv{}
    xml.Unmarshal([]byte(contents), &m)
    fmt.Printf("%s %f %d\n", m.Unit, m.datevalues.Value, m.datevalues.Date)
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

Wh 0.000000 0
Run Code Online (Sandbox Code Playgroud)

xml nested go unmarshalling

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

Python美丽的汤 - 通过Steam的年龄检查

我正在学习网络抓取,我一直在努力编写一个程序,从Steam的网站上提取信息作为练习.

我想编写一个程序,只访问每个前10名畅销游戏的页面并提取一些内容,但我的程序只是在尝试访问M级游戏时被重定向到年龄检查页面.

我的程序看起来像这样:

front_page = urlopen('http://store.steampowered.com/').read()
bs = BeautifulSoup(front_page, 'html.parser')
top_sellers = bs.select('#tab_topsellers_content a.tab_item_overlay')

for item in top_sellers:
    game_page = urlopen(item.get('href'))
    bs = BeautifulSoup(game_page.read(), 'html.parser')
    #Now I'm on the age check page :(
Run Code Online (Sandbox Code Playgroud)

我不知道如何通过年龄检查,我已经尝试通过发送POST请求来填写年龄检查,如下所示:

post_params = urlencode({'ageDay': '1', 'ageMonth': 'January', 'ageYear': '1988', 'snr': '1_agecheck_agecheck__age-gate'}).encode('utf-8')
page = urlopen(agecheckurl, post_params)
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我仍然在年龄检查页面.任何可以帮助我的人,我怎么能超越它?

python beautifulsoup web-scraping python-3.x python-3.5

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

如何使用ElementTree解析HTML以查找特定的RegEx?

使用Python 2.7.6与ElementTree一起从文件系统加载/解析HTML文件,然后遍历文件以将特定的RegEx存储到数据结构中.

所以,在我项目的文件夹中,我有一个名为person.html的HTML文件:

<!DOCTYPE html>
<html>
    <body>
        <ul>
            <li>Name: $name</li>
            <li>Age: $age</li>
        </ul>
    </body> 
</html>
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的Python脚本(main.py):

#!/usr/bin/env python
import web
import xml.etree.ElementTree as ElementTree

tree = ET.parse(person.html)
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 如何使用以$(例如$name$age)开头的RegEx或ElementTree值进行解析?

  2. 如何将这些值存储到我将来可以迭代的数据结构中?

python regex elementtree data-structures

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

为什么g.append(l.pop())返回l的后半部分但是l只有前半部分

当我在一个程序上工作时,我在代码中看到了一个奇怪的行为.这就是我所看到的.

>>> l = [1,2,3,4,5,6,7,8]
>>> g = []
>>> for i in l:
...     g.append(l.pop())
... 
>>> l
[1, 2, 3, 4]
>>> g
[8, 7, 6, 5]
>>> 
Run Code Online (Sandbox Code Playgroud)

该列表g应该具有列表中的所有元素l!但为什么只考虑一半的名单呢?

免责声明:我不是要复制列表或反转列表.这是我在处理其他事情时发现的.

python list python-2.7

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

使用原始字符串运行子进程

这有点奇怪,但我正在运行一个名为scrapebox的程序,scrapebox有一个automator插件,可以创建一个文件来自动运行一些内容.为了从cmd运行automator,我将cd进入程序目录,然后键入:

Scrapebox.exe "automator:1.sbaf"
Run Code Online (Sandbox Code Playgroud)

它首先会启动Scrapebox程序,一旦打开,就会立即运行自动化文件.

这是一个更大拼图中的一小部分.我试图在更大的Python脚本中调用它.

import os
import subprocess
..........
..........
..........
print "Opening Scrapebox now, please wait."

os.chdir('C:\Users\Admin\DomainDB\Programs\ScrapeBox')

print
print "Current working dir : %s" % os.getcwd()
print

subprocess.call(["Scrapebox.exe"])
#"automator:1.sbaf"

print "Scrapebox finished. Moving on."
Run Code Online (Sandbox Code Playgroud)

当我像上面那样运行它时,它可以工作并打开scrapebox.但是,我真正需要做的是这样的事情:

subprocess.call(["Scrapebox.exe "automator:1.sbaf""])
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它会抛出语法错误.那么我如何输入可能作为原始字符串,就好像它被输入cmd一样?

python subprocess

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

阅读Python中的下一行

我试图弄清楚如何在文本文件中搜索字符串,如果找到该字符串,则输出下一行.

我在这里看了一些类似的问题,但无法从他们那里得到任何帮助我的东西.

这是我制作的节目.我已经完全解决了这个具体的问题,所以它在很多其他方面也可能并不完美.

def searcher():
    print("Please enter the term you would like the definition for")
    find = input()
    with open ('glossaryterms.txt', 'r') as file:
        for line in file:
            if find in line:
                print(line)
Run Code Online (Sandbox Code Playgroud)

因此,文本文件将由术语组成,然后由其下面的定义组成.

例如:

Python
我正在使用的一种编程语言

如果用户搜索该术语Python,程序应输出定义.

我尝试了不同的打印组合(行+ 1)等但到目前为止没有运气.

python

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

Python-Selenium通过href找到元素

我正在尝试使用Selenium查找(并单击)我的Python程序的特定页面。

我试过了

driver.findElement(By.cssSelector("a[href*='text']")).click();
Run Code Online (Sandbox Code Playgroud)

driver.findElement(By.partialLinkText("text")).click();
Run Code Online (Sandbox Code Playgroud)

随着text我正在寻找。这些不适用于错误

AttributeError: 'WebDriver' object has no attribute 'findElement'
Run Code Online (Sandbox Code Playgroud)

我只能假设它找不到元素,因为那是Java而不是Python。

网站上链接的唯一区别因素是href属性。

所有其他标签都有重复。我无法100%猜出正确的链接,因此我还需要定位器使用部分文字。

反正有开始吗?我可以使用其他程序吗?有人成功做到了吗?我尝试搜索,但没人问过。

html python selenium

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