A. python下numpy不成功,请问有没有简单的安装方法
安装Python包,使用pip最为方便了,简单快捷,因为它直接是从pypi上面下载文件,保证文件的安全性和可靠性,并且资源丰富;
下面是安装步骤:
下载 setuptools,注意对应 Python 的版本,完成后运行 exe 即可完成安装
https://pypi.python.org/pypi/setuptools/1.4.1
setuptools-1.4.1.win32-py2.6.exe
下载 pip
https://pypi.python.org/pypi/pip
pip-1.4.1.tar.gz
安装 pip
3.1 解压pip-1.4.1.tar.gz
3.2 运行CMD,进入命令行
3.3 用CD命令进入 pip 解压目录
4.4 输入 "python setup.py install"
4.5 添加环境变量 path = C:Python26ArcGIS10.0Scripts
验证是否安装成功,运行CMD,进入命令行,输入pip;
如果出现pip的用法介绍,说明安装成功。
输入 "pip install package",package为安装包名称,就可以随意使用了。
B. 怎样用Python解压缩*.tgz文件
import os
os.popen('tar -zxvf *.tgz')
C. 如何用Python写一个暴力破解加密压缩包的程
有些时候加密rar软件经常会忘了密码,但记得密码的大概,于是乎用Python写个程序来暴力破解吧:
首先要搞清楚如何用命令行来解压缩,经研究,rar软件解压是用的unrar.exe,将这个程序拷贝到C:\windows,然后进入加密软件包所在的文件夹,用命令行运行 下面的命令:
unrar.exe e -pabcd 123.rar
程序就是先前拷到C:\windows,然后参数e是指相对路径,如果在是本文件夹下运行这个命令,则只打文件名就可以了,输入密码的方式是-p后面的字段,假定是abcd,最后面的是要解压的文件名。
下面我们解决如何用Python来运行windows下的命令行
import subprocess
command = 'unrar.exe e -n -pabcd 123.rar'
subprocess.call(command)
这样也可以完成解压,既然这样,那就开干吧,写一个暴力循环,我以4位字母为例,字母加的不全,实际使用可以视情况添加
list1=['a','b','c','d']
list2=['a','b','c','d']
list3=['a','b','c','d']
list4=['a','b','c','d']
for i1 in range(0,len(list1),1):
for i2 in range(0,len(list2),1):
for i3 in range(0, len(list3), 1):
for i4 in range(0, len(list4), 1):
password=list1[i1]+list2[i2]+list3[i3]+list4[i4]
print(password)
command = 'unrar.exe e -n -p' + password + ' 123.rar'
child = subprocess.call(command)
if child == 0:
print('解压密码是:',password)
break
child是返回值,为0表示解压成功,可以挑出循环并打印密码了,我实测,4位纯数字或者字母,只需要十多秒就出来了,非常简单
D. 下载python然后有一堆文件要解压
python一堆文件解压方法如下。
压缩包解压要用的是zipfile这个包。
zip_file = zipfile.ZipFile(r'D:数据源XX_%s.zip'%yday)
zip_list = zip_file.namelist() # 压缩文件清单,可以直接看到压缩包内的各个文件的明细
for f in zip_list: # 遍历这些文件,逐个解压出来,
zip_file.extract(f,r'D:数据源')
zip_file.close() # 不能少!
print('昨日日志解压完成,请在文件夹中验收!') # 当然我是不需要查收的(*/ω\*)
这里的解压操作实际就相当于鼠标右键“解压到当前文件夹”的效果。
完成解压后运行.close()是个比较好的习惯,否则可能会导致包括但不限于:
文件会一直被占用着,可能无法重新打开;
在进程结束之前文件都删不掉;
文件内容不能即时 flush 到磁盘直到进程结束;
到此,整个流程在无需打开浏览器和文件夹的情况下便自动完成了。
为了方便日常运行代码,这里把上面的两个流程包装成一个函数,下载解压
#下载昨日日志
def download_XXlog():
yday = (date.today()+timedelta(days=-1)).strftime('%Y%m%d') # 获取昨日日期
r = requests.get('http://XXXXXXXX/XX_%s.zip'%yday) # 获取以日期命名的压缩包信息
with open(r'D:数据源XX_%s.zip'%yday,'wb') as code: # 将压缩包内容写入到 "D:数据源" 下,并按日期命名
code.write(r.content)
print('昨日XX日志下载完成。')
zip_file = zipfile.ZipFile(r'D:数据源XX_%s.zip'%yday)
zip_list = zip_file.namelist() # 压缩文件清单,可以直接看到压缩包内的各个文件的明细
for f in zip_list: # 遍历这些文件,逐个解压出来,
zip_file.extract(f,r'D:数据源')
zip_file.close() # 不能少!
print('昨日日志解压完成,请在文件夹中验收!')
download_XXlog()
拓展
作为拓展,这里再加一个可以根据实际情况输入(input)起始和终止日期,来下载一个特定时间段日志的函数,这里就涉及了datetime和time这两个工具包了。
E. python 3.2版本 解压rar/zip到指定目录
#!/usr/bin/env python3
import os,zipfile
def Zip(target_dir):
target_file=os.path.basename(os.getcwd())+'.zip'
zip_opt=input("Will you zip all the files in this dir?(Choose 'n' you should add files by hand)y/n: ")
while True:
if zip_opt=='y': #compress all the files in this dir
filenames=os.listdir(os.getcwd()) #get the file-list of this dir
zipfiles=zipfile.ZipFile(os.path.join(target_dir,target_file),'w',compression=zipfile.ZIP_DEFLATED)
for files in filenames:
zipfiles.write(files)
zipfiles.close()
print("Zip finished!")
break
elif zip_opt=='n': #compress part of files of this dir
filenames=list(input("Please input the files' name you wanna zip:"))
zipfiles=zipfile.ZipFile(os.path.join(target_dir,target_file),'w',compression=zipfile.ZIP_DEFLATED)
for files in filenames:
zipfiles.write(files)
zipfiles.close()
print("Zip finished!")
break
else:
print("Please in put the character 'y' or 'n'")
zip_opt=input("Will you zip all the files in this dir?(Choose 'n' you should add files by hand)y/n: ")
def Unzip(target_dir):
target_name=input("Please input the file you wanna unzip:")
zipfiles=zipfile.ZipFile(target_name,'r')
zipfiles.extractall(os.path.join(target_dir,os.path.splitext(target_name)[0]))
zipfiles.close()
print("Unzip finished!")
def main():
opt=input("What are you gonna do?Zip choose 'y',unzip choose 'n'.y/n: ")
while True:
if opt=='y': #compress files
zip_dir=input("Please input the absdir you wanna put the zip file in:")
Zip(zip_dir)
break
elif opt=='n': #unzip files
unzip_dir=input("Please input the absdir you wanna put the zip file in(Nothing should be done if you wann unzip files in the current dir):")
if unzip_dir=='':
Unzip(os.getcwd())
else:
Unzip(unzip_dir)
break
else:
print("Please input the character 'y' or 'n'")
opt=input("What are you gonna do?Zip choose 'y',unzip choose 'n'.y/n: ")
if __name__=='__main__':
main()
解压和压缩都有,自己稍微改改解压的文件名就行了
F. Python打开zip文件
Zip文件格式是通用的文档压缩标准。自1.6版本起,Python中zipfile模块能够直接处理zip文件里的数据,例如需要将对应目录或多个文件打包或压缩成zip格式,或者需要查看一个zip格式的归档文件中部分或者所有文件同时避免讲这些文件展开到磁盘上。使用ZipFile类来操作zip文件。
创建一个ZipFile对象,表示一个zip文件。
参数file:文件的路径或者类似文件对象
参数mode:读"r",写入"w",添加"a"
参数compression: ZIP_STORED(无压缩),ZIP_DEFLATED(压缩,需要zlib支持)
参数allowZip64:默认情况下报错,将其设为True,ZipFile将用ZIP64扩展进行创建文件。
下面示例演示了读取一个zip文档,将文档里所有文件解压到名为"work"的文件里。
import zipfile
if __name__ == "__main__":
zFile = zipfile.ZipFile("F:\\txt.zip","r")
#ZipFile.namelist():获取ZIP文档内所有文件的名称列表
for fileM in zFile.namelist():
zFile.extract(fileM,"F:\\work")
zFile.close()
read(self,name,pwd=None)获取ZIP文档内文件的二进制数据
下面例子演示了使用read方法获取ZIP文档中mango.txt文件的数据,并写到.txt文件中
import zipfile
if __name__ == "__main__":
zipFile = zipfile.ZipFile('F:\\test.zip','r')
data = zipFile.read("mango.txt")
(lambda f,d:(f.write(d),f.close()))(open("F:\\.txt,'w"),data)
zipFile.close()
write(self, filename, arcname=None, compress_type=None)将指定文件写入ZIP文档中
参数filename:需要写入文件的路径
参数arcname:文件写入ZIP文档后保存的文件名
参数compress_type:压缩方法(ZIP_STORED或ZIP_DEFAULED)
下面离子演示了创建一个zip文档,将test.docx文件写入压缩文档里面。
import zipfile
if __name__ == "__main__":
zipFile = zipfile.ZipFile("F:\\test.zip","w")
zipFile.write("F:\\test.docx","ok.docx",zipfile.ZIP_DEFLATED)
zipFile.close()
getinfo(name)返回一个ZipInfo类的对象。
import zipfile
if __name__ == "__main__":
zipInfo = zipFile.getinfo(ok.docx)
print("filename:",zipInfo.filename)
print("date_time:",zipInfo.date_time)
常用函数
关闭归档文件,你必须在退出程序之前调用close()否则将不会写入关键记录数据。
返回一个ZipInfo对象,其中包含有关归档成员name的信息。针对一个目前并不包含于归档中的名称调用getinfo()将会引发KeyError。
返回一个列表,其中包含每个归档成员的ZipInfo对象。如果是打开一个现有归档则这些对象的排列顺序与他们对于条目在磁盘上的实际ZIP文件中的顺序一致。
返回按名称排列的归档成员列表。
以二进制文件类对象的形式访一个归档成员。name可以是归档内某个文件的名称也可以是某个ZipInfo对象。如果包含了mode形参,则它必须为"r"(默认值)或"w"。pwd为用于解密已加密Zip文件的密码。
open()也是一个上下文 管理器,因此支持with语句:
with ZipFile('spam.zip') as myzip:
with myzip.open('eggs.txt') as myfile:
print(myfile.read())
如果mode为“r”则文件类对象(ZipExtFile)将只读并且提供下列方法:read(),readline(),readlines(),seek(),tell(),__iter__(),__next__()。这些对象可独立于ZipFile进行操作。
如果mode='w'则返回一个可写入的文件句柄,它将支持write()方法。当一个可写入的文件句柄被打开时,尝试读写ZIP文件中的其他文件将会引发ValueError。
当写入一个文件时,如果文件大小不能预先确定但是可能超过2GiB,可传入force_zip64=True以确保标头格式能够支持超大文件。如果文件大小可以预先确定,则在构造ZipInfo对象时应设置file_size,并将其作name形参。
从归档中提取一个成员放入当前工作目录;member必须为成员的完整名称或ZipInfo对象。成员的文件信息会尽可能精确地被提取。path指定一个要提取到的不同目录。member可以是一个文件名或ZipInfo对象。pwd是用于解密文件的密码。返回所创建的经正规化的路径(对应于目录或新文件)。
从归档中提取出所有成员放入当前工作目录。path指定一个要提取到的不同的目录。members为可选项且必须为namelist()所返回列表的一个子集。pwd是用于解密文件的密码。
警告:绝不要未经预先检验就从不可靠的源中提取归档文件。 这样有可能在 path 之外创建文件,例如某些成员具有以 "/" 开始的文件名或带有两个点号 ".." 的文件名。 此模块会尝试防止这种情况。 参见 extract() 的注释。
将归档是目录表打印到sys.stdout.
设置pwd为用于提取已加密文件的默认密码。
返回归档中文件name的字节数据。name是归档中文件的名称,或是一个ZipInfo对象。归档必须以读取或追加方式打开。pwd为用于已加密文件的密码,并且如果指定该参数则它将覆盖通过setpassword()设置的默认密码。 on a ZipFile that uses a compression method 在使用 ZIP_STORED , ZIP_DEFLATED , ZIP_BZIP2 或 ZIP_LZMA 以外的压缩方法的 ZipFile 上调用 read() 将引发 NotImplementedError 。 如果相应的压缩模块不可用也会引发错误。
读取归档中的所有文件并检查他们的CRC和文件头。返回第一个已损坏文件的名称,在其他情况下则返回None。
将名为filename的文件写入归档,给予的归档名为arcname(默认情况下将与filename一致,但是不带驱动器盘符并会移除开头的路径分隔符)。compress_type如果给出,它将覆盖作为构造器compression形参对于新条目所给出的值。类似地,compresslevel如果给出也将覆盖构造器。归档必须使用"w","x“或"a"模式打开。
将一个文件写入归档。 内容为 data ,它可以是一个 str 或 bytes 的实例;如果是 str ,则会先使用 UTF-8 进行编码。 zinfo_or_arcname 可以是它在归档中将被给予的名称,或者是 ZipInfo 的实例。 如果它是一个实例,则至少必须给定文件名、日期和时间。 如果它是一个名称,则日期和时间会被设为当前日期和时间。 归档必须以 'w', 'x' 或 'a' 模式打开。
ZIP文件的名称