我正在使用:
str(datetime.datetime.today()).split()[0]
Run Code Online (Sandbox Code Playgroud)
以YYYY-MM-DD的形式返回今天的日期.
是否有一种不那么粗暴的方法来实现这一目标
当已知Python列表始终包含单个项目时,是否可以访问它而不是:
mylist[0]
Run Code Online (Sandbox Code Playgroud)
你可能会问,'你为什么要这样?'.仅好奇心.似乎有另一种方法可以在Python中完成所有工作.
我正在使用-l标志和grep来打印匹配的文件名.
我想按升序列出结果(文件),即最新的.
明显
grep -l <pattern> *.txt | ls -rt
Run Code Online (Sandbox Code Playgroud)
不是我需要的,因为ls -lrt只输出所有文件.
我正在打开一本工作簿openpyxl
:
wb = load_workbook(r'seven.xlsx', data_only=True)
Run Code Online (Sandbox Code Playgroud)
电子表格的名称并不总是事先知道,所以我需要重写这个硬编码以允许一个变量,同时仍然保持r
?
如果我的变量名是 sheet,那么:
wb = load_workbook(sheet, data_only=True)
Run Code Online (Sandbox Code Playgroud)
将省略r
.
显然我不能这样做:
wb = load_workbook(r'sheet', data_only=True)
Run Code Online (Sandbox Code Playgroud)
我们如何实现 r 到变量的前置/我们如何将 vriable 包装在其中r''
?
我正在寻找使用SPSS文件(.sav)pandas
.在没有SPSS程序的情况下,这是转换为.csv时典型文件的样子:
在调查前两行的含义(我不知道SPSS)时,似乎第一行包含Label
s,而第二行包含VarName
s.
当我将文件带入熊猫时:
import pandas.rpy.common as com
def savtocsv(filename):
w = com.robj.r('foreign::read.spss("%s", to.data.frame=TRUE)' % filename)
w = com.convert_robj(w)
return w
Run Code Online (Sandbox Code Playgroud)
然后执行head(),第一行(Label)丢失:
如何维护标签?
在发布此问题后经过一些试验和错误,我观察到以下现象:
>>> [1,2][True]
2
>>>>[1,2][False]
1
>>>>[1,2,3][True]
2
Run Code Online (Sandbox Code Playgroud)
如果我添加第三个或后续元素,则无效.
有人能指出我对这些观察的解释吗?我认为这是与任何Python列表中前两个元素相关的一般属性?
谢谢
我有以下三个字符串(它们独立存在,但为方便起见,这里一起显示):
from mx2.x.org (mx2.x.org. [198.186.238.144])
by mx.google.com with ESMTPS id g34si6312040qgg.122.2015.04.22.14.49.15
(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
Wed, 22 Apr 2015 14:49:16 -0700 (PDT)
from HQPAMAIL08.x.org (10.64.17.33) by HQPAMAIL13.x.x.org
(10.34.25.11) with Microsoft SMTP Server (TLS) id 14.2.347.0; Wed, 22 Apr
2015 17:49:13 -0400
from HQPAMAIL13.x.org ([fe80::7844:1f34:e8b2:e526]) by
HQPAMAIL08.iadb.org ([fe80::20b5:b1cb:9c01:aa86%18]) with mapi id
14.02.0387.000; Wed, 22 Apr 2015 17:49:12 -0400
Run Code Online (Sandbox Code Playgroud)
我希望根据字符串的反转(从下到上)顺序填充一些带有某些值的字典.具体来说,对于每个字符串,我将IP地址提取为排序索引,然后将完整字符串作为值.
鉴于顺序很重要,我决定使用列表,并且最初做了类似的事情(伪代码,带有上面的一堆文本):
IPs =[]
fullStrings =[]
for string in strings:
IPs.append[$theIpAddressFoundInTheString]
fullstrings.append[$theWholeString]
Run Code Online (Sandbox Code Playgroud)
产生以下两个列表(再次,只是一个例子):
IPs ['198.186.238.144', '10.64.17.33', 'fe80::7844:1f34:e8b2:e526']
fullstrings ['from mx2.x.org (mx2.x.org. [198.186.238.144])
by mx.google.com …
Run Code Online (Sandbox Code Playgroud) 这个正则表达式([a-z0-9]{1,4}:+){3,5}[a-z0-9]{1,4}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3
几乎完成了匹配IP地址(v4和v6)的工作,而不幸的是,对于下面的文本和类似的文本,它也会以粗体显示字段:
来自mail.example.com(example.com.[213.239.250.131])by mx.google.com,ESMTPS id为xc4si15480310lbb.82.2 014.10.26.06 .16.58 for(version = TLSv1.2 cipher = ECDHE-RSA-AES128-GCM -SHA256位= 128/128); 太阳,2014年10月26日06:16:58 -0700(PDT)
收到:来自ssservices1-1(192.168.20.142)的mail.supershuttle.com(192.168.20.110),带有Microsoft SMTP Server id 14.2.347.0 ; 2015年4月21日星期二
收到:来自ssservices1-1(192.168.20.142)的mail.supershuttle.com(192.168.20.110),带有Microsoft SMTP(TLS)服务器ID 14.2.347.0 ; 2015年4月21日星期二
接收:从plug.mysitehosted.com(plug.mysitehosted.com [10.248.1.153])(使用的TLSv1与密码DHE-RSA-AES256-SHA)由0.0.0.0:2500(TREX/5.0.19); 星期二,2014年3月11日06:14:03 GMT
省略这些匹配的最佳方法(我将使用Python)是什么?两个前面是文本'id',但在第一种情况下,不是直接在它之前.
我正在使用xlrd
处理.xls文件,并openpyxl
处理.xlsx文件,这很好用.
然后我交给了表面上是.xls文件的东西,所以我尝试着xlrd.open_workbook()
,得到:
XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '<?xml ve'
Run Code Online (Sandbox Code Playgroud)
我看一下这个问题,我猜测我的文件虽然以扩展名.xls结尾,但实际上必须是.xlsx.事实上,我可以在文本编辑器中查看它:
<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
:
:
:
Run Code Online (Sandbox Code Playgroud)
(出于隐私原因,我无法发布整个文件,但我们的分析可能不需要).
所以我猜测,如果我只是将cp
它复制(.)到.xlsx,我应该可以打开它openpyxl.load_workbook()
,但我得到:
BadZipfile: File is not a zip file
Run Code Online (Sandbox Code Playgroud)
如果它实际上是一个xls(不太可能)但是无法打开xlrd
,并且如果它是一个非常的xlsx但是无法打开openpyxl
,即使我将cp
它转换为.xlsx,该怎么办?
注意:如果我在Excel中打开.xls,将其保存为.xlsx,然后重试openpyxl
,它确实可以正常加载,但是这个手动步骤并不是我执行程序时的奢侈.
当在 ebay 中输入多词搜索词时,结果 URL 类似于(例如“demarini cf5 cf12”):
http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=demarini%20cf5%20cfc12
Run Code Online (Sandbox Code Playgroud)
我希望用 Python 构建这个 URL,以便可以直接访问它。所以这是连接基本 URL 的情况:
http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=
Run Code Online (Sandbox Code Playgroud)
...与搜索词。马上。我正在%20
为空格添加 ,因此:
baseUrl = 'http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw='
searchTerm = 'demarini cf5 cf12'
searchTerm = ('%20').join(searchTerm.split(' '))
finalUrl = baseUrl + searchTerm
Run Code Online (Sandbox Code Playgroud)
在 Python 中执行此操作的更正式方法是什么?我相信这种任务的名称是 URL 编码?
python ×9
python-2.7 ×4
list ×3
arrays ×1
datetime ×1
dictionary ×1
excel-2010 ×1
grep ×1
iteration ×1
linux ×1
openpyxl ×1
pandas ×1
python-3.x ×1
r ×1
rawstring ×1
regex ×1
rpy2 ×1
spss ×1
string ×1
unix ×1
url ×1
url-encoding ×1
urllib ×1
urllib2 ×1
xlrd ×1