我正在编写桌面 WPF 应用程序(.Net Framework 4.5),其中一项任务是将多个文件保存到 zip 存档。我做了2个方法。首先创建zip,然后从中读取。
public static String GetFileContent(String zipPath, String entityName)
{
String retVal = String.Empty;
using (ZipArchive zipfile = ZipFile.OpenRead(zipPath))
{
foreach (ZipArchiveEntry entry in zipfile.Entries)
{
if (entry.Name.ToLower() == entityName)
{
using (StreamReader s = new StreamReader(entry.Open()))
{
retVal = s.ReadToEnd();
break;
}
}
}
}
return retVal;
}
public static void SetArchive(String path, String zipName, Dictionary<String, String> files)
{
using (var fileStream = new FileStream(Path.Combine(path, zipName), FileMode.OpenOrCreate))
{
using (ZipArchive zip = new ZipArchive(fileStream, …Run Code Online (Sandbox Code Playgroud) 如果我有一个zipfile.ZipFile对象,如何从对象中确定 zip 文件的文件路径?
a = zipfile.ZipFile('C:\\path\\zipfile.zip')
a.get_file_path()
Run Code Online (Sandbox Code Playgroud)
get_file_path()应该返回哪里'C:\\path\\zipfile.zip'。
我如何将下面的 zip 列表写入 python 中的 csv 文件?
[{'date': '2015/01/01 00:00', 'v': 96.5},
{'date': '2015/01/01 00:01', 'v': 97.0},
{'date': '2015/01/01 00:02', 'v': 93.75},
{'date': '2015/01/01 00:03', 'v': 96.0},
{'date': '2015/01/01 00:04', 'v': 94.5}
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
_csv.Error: sequence expected
Run Code Online (Sandbox Code Playgroud)
我的代码在这里:
import csv
res = zip_list
csvfile = "/home/stm/PycharmProjects/isbak_trafik/example.csv"
with open(csvfile, "w") as output:
writer = csv.writer(output, lineterminator='\n')
writer.writerows(res)
Run Code Online (Sandbox Code Playgroud) 我需要一次解压缩多个文件并将其添加为 R 仪表板中的数据框。
我目前正在使用此代码:
zipF<- "/Users/sahilverma13/Desktop/chat_data_2017-01-30_IST.zip"
outDir<-"/Users/sahilverma13/Desktop"
unzip(zipF,exdir=outDir)
Run Code Online (Sandbox Code Playgroud)
但是我必须分别为每个文件执行此操作。
zipF <- list.files(pattern="*.zip")
Run Code Online (Sandbox Code Playgroud)
我尝试使用通配符,但它不起作用。
请帮忙。
我正在尝试从压缩档案中将文本文件读入 Pandas 数据帧。这些文件的格式如下:
System Time hh:mm:ss PPS Zsec(sec) Hex Message
Yr=17 Mn= 3 Dy= 3
19:22:59.894 19:22:16 52 69736 7E 32 02 4F 02 00 0C 7F 97 68 10 01 00 11 03 03 13 16 10 34 00 00 00 05 02 00 80 00 83 B1 7E
19:24:12.130 19:23:10 106 69790 7E 32 02 4F 02 00 0C 7F 97 9E 10 01 00 11 03 03 13 17 0A 6A 00 00 00 05 12 00 …Run Code Online (Sandbox Code Playgroud) 我一直在搜索整个 stackoverflow 以了解如何从 zip 文件路径中仅提取子文件夹的名称。
我尝试使用 tkinter 来获取 zip 路径:
Import os
from tkinter import filedialog
import tkinter as tk
from zipfile import ZipFile
root = tk.Tk()
root.withdraw()
root.filename = filedialog.askopenfilename(initialdir=os.getcwd(), title="Select file", filetypes=[("zip", "*.zip")])
Run Code Online (Sandbox Code Playgroud)
并使用 ZipFile 和 namelist 来获得所有子文件夹的名称。
with ZipFile(root.filename, 'r') as f:
names = f.namelist()
Run Code Online (Sandbox Code Playgroud)
但是,我明白了:
['CS10/', 'CS10/.DS_Store', '__MACOSX/', '__MACOSX/CS10/', '__MACOSX/CS10/._.DS_Store', etc........
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法只获取文件夹名称,在这种情况下是 CS10 等等。
示例:如果我在 zip 文件路径(Users/Kiona/fruits.zip)中有 3 个名为“Apple”“Orange”“Pear”的文件夹,我想打印 ['Apple','Orange','Pear']
我对 Python 很陌生,所以我希望这听起来不是一个非常愚蠢的问题。
干杯!
我想在单击单个下载按钮的同时从 zip 文件中从亚马逊 s3 下载多个文件。
我想使用 php 或 JavaScript 来实现这一点。
我研究了许多解决方案,例如:在 aws cli 中使用递归、动态 Zipstream,但我没有得到任何适当的解决方案。
您对另一种更有效的解决方案有什么想法吗?
大多数情况下,这段代码都可以工作,但是,大约有 1/3 的时间,它通过了大约 80% 的时间并失败了。解压缩 x 射线图像文件时解压缩失败。(它们是没有文件扩展名的编号文件。)它似乎在大部分时间都能处理它们,但是,每隔一段时间就会有一个无法解压缩的 X 射线。当它在文件上失败时,它会给它一个带有随机扩展名的随机文件名。它似乎在解压缩时遇到了它不理解的字符组合。
它特别发生在 aes 加密的 zip 文件中。如果他们发送没有 aes 加密压缩的相同文件,那么程序会很好地解压缩它们。
当我使用 7zip 应用程序手动解压缩同一个 zip 文件时,我输入了相同的密码并且它工作得很好。
前任。文件应该是:00043 ==> 解压失败产生:1hzcqoee.nss
尚未计算最终散列。
在 Ionic.Zip.WinZipAesCipherStream.get_FinalAuthentication() 在 Ionic.Zip.ZipEntry.VerifyCrcAfterExtract(Int32calculatedCrc32, EncryptionAlgorithm encryptionAlgorithm, Int32 expectedCrc32, Stream archiveStream, Int64 uncompressedSize) at Ionic.Zip. encryptionAlgorithm, Int32 expectedCrc32) at Ionic.Zip.ZipEntry.InternalExtractToBaseDir(String baseDir, String password, ZipContainer zipContainer, ZipEntrySource zipEntrySource, String fileName) at Ionic.Zip.ZipFile._InternalExtractAll(String path, Boolean overrideExtractExistingNewPropertySystemsZip4) at Ionic.Zip.ZipEntry.InternalExtractToBaseDir(String baseDir, String password, ZipContainer zipContainer, ZipEntrySource zipEntrySource, String fileName) (字符串 zipToUnpack,字符串 unpackDirectory)
using Ionic.Zip;
public bool ExtractZip(string …Run Code Online (Sandbox Code Playgroud) 有文件夹路径:
P:\\2018\\Archive\\
Run Code Online (Sandbox Code Playgroud)
我想以编程方式创建许多 zipfile,但我从测试开始。我将这个测试 zip 文件命名为“CO_007_II.zip”,并将尝试在上述位置创建:
import zipfile as zp
with zp.ZipFile("P:\\2018\\Archive\\CO_007_II.zip",'w') as myzip:
myzip.write(r"P:\2018\CO_007_II")
Run Code Online (Sandbox Code Playgroud)
但我得到错误!
...
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\ArcGIS10.2\lib\zipfile.py", line 752, in __init__
self.fp = open(file, modeDict[mode])
IOError: [Errno 2] No such file or directory: 'P:\\2018\\Archive\\CO_007_II.zip'
Run Code Online (Sandbox Code Playgroud)
这不是创建新 zipfile 的方法吗?我知道文件不存在。是为什么我使用“w”模式,不是吗?
这是文档:
https://docs.python.org/3/library/zipfile.html
它说:
'w' 截断并写入一个新文件
文档页面上的示例:
with ZipFile('spam.zip', 'w') as myzip:
myzip.write('eggs.txt')
Run Code Online (Sandbox Code Playgroud)
代码在两天前工作以创建新的 zip 文件,但没有添加文件夹。今天没有任何效果!为什么不?所有路径都有效。如何使用 python 创建新的 zip 文件并向其中添加文件夹?
我遇到了文件访问问题。
主要问题是我无法在文件夹选择器获取的文件夹中写入 ZipFile 。
虽然我一直在研究这个项目,但在遇到这个 ZipFile 问题之前,我做了很多与创建文件、删除文件以及在该文件夹中创建文件夹相关的工作。这个问题似乎无关紧要。
正如文件访问文档所说,我对用户在使用文件夹选择器时选择的文件夹具有访问权限。
但我无法在该文件夹中创建此 ZipFile。以下是我的来源和例外。
string zipfPath = folder.Path + @"\" + i.ToString() + ".zip";
await folder.CreateFolderAsync("DADADAD");
ZipFile.CreateFromDirectory(folder.Path + @"/DADADAD", zipfPath);
Run Code Online (Sandbox Code Playgroud)
为什么我无法访问该文件夹ZipFile.Create(Path string)?使用 UWP 时是否有其他要求?ZipFile.Create也许我只是我的误用?
异常消息遵循 System.UnauthorizedAccessException: 'Access to the Path 'C:\Users\yohan\Desktop\? ?? (2)\1.zip'被拒绝'。