ОП хотел что-то очень специфическое (создание текстового файла с выходными данными), и принятый ответ прекрасно справляется с этой задачей, но представленное решение не работает хорошо вне этого конкретного контекста. Например, если я хочу передать многострочный ввод в команду, я не могу использовать синтаксис ( echo )
. Вот что в итоге сработало для меня.
Имеется скрипт perl с именем «echolines.pl», состоящий из следующего (для имитации «реальной» программы):
use strict;
use warnings;
while (<>) {
chomp;
print qq(< ОП хотел что-то очень специфическое (создание текстового файла с выходными данными), и принятый ответ прекрасно справляется с этой задачей, но представленное решение не работает хорошо вне этого конкретного контекста. Например, если я хочу передать многострочный ввод в команду, я не могу использовать синтаксис ( echo )
. Вот что в итоге сработало для меня.
Имеется скрипт perl с именем «echolines.pl», состоящий из следующего (для имитации «реальной» программы):
[110] и командного файла с именем «testme.bat», содержащего:
@echo off
set FOO=foo
set BAR=bar
set BAZ=baz
echo %FOO%^
&echo %BAR%^
&echo %BAZ%|perl echolines.pl
при запуске выдает ожидаемый результат:
C:\>testme
<foo>
<bar>
<baz>
Необходимо соблюдать осторожность с пробелами, чтобы убедиться, что все работает правильно, без каких-либо пробелов. В частности: каждый конец строки должен быть символом (^), за которым следует новая строка, последующие строки должны начинаться сразу с амперсанда (& amp;), а в последней строке должен быть канал, начинающийся сразу после последнего отправляемого элемента , Невыполнение этого требования приведет к отсутствию параметров или лишним пробелам до и после параметров.
>\n);
}
и командного файла с именем «testme.bat», содержащего:
@echo off
set FOO=foo
set BAR=bar
set BAZ=baz
echo %FOO%^
&echo %BAR%^
&echo %BAZ%|perl echolines.pl
при запуске выдает ожидаемый результат:
C:\>testme
<foo>
<bar>
<baz>
Необходимо соблюдать осторожность с пробелами, чтобы убедиться, что все работает правильно, без каких-либо пробелов. В частности: каждый конец строки должен быть символом (^), за которым следует новая строка, последующие строки должны начинаться сразу с амперсанда (& amp;), а в последней строке должен быть канал, начинающийся сразу после последнего отправляемого элемента , Невыполнение этого требования приведет к отсутствию параметров или лишним пробелам до и после параметров.
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
zip_ref.extractall(directory_to_extract_to)
Вот и все!
попробуйте это:
import zipfile
def un_zipFiles(path):
files=os.listdir(path)
for file in files:
if file.endswith('.zip'):
filePath=path+'/'+file
zip_file = zipfile.ZipFile(filePath)
for names in zip_file.namelist():
zip_file.extract(names,path)
zip_file.close()
путь: распаковать путь к файлу
Используйте метод extractall
, если вы используете Python 2.6+
zip = ZipFile('file.zip')
zip.extractall()