如何解压缩传递变量的文件夹?
Posted
技术标签:
【中文标题】如何解压缩传递变量的文件夹?【英文标题】:How to unzip a folder passing a variable? 【发布时间】:2019-06-19 13:24:52 【问题描述】:我正在尝试通过在 Google-colab 中传递一个变量来解压缩文件夹。但是,当我这样做时,它不会出现在我的文件夹中。
如果我通过直接传递名称来做到这一点,就像这里的答案一样: Extract Google Drive zip from Google colab notebook
!unzip TASI.zip
我得到这个输出:
rchive: TASI.zip
inflating: TASI/Output [11-13(1) _good_; 18_06_2019 15_58_09].csv
inflating: TASI/Output [11-15(1) _good_; 18_06_2019 15_51_26].csv
inflating: TASI/Output [11-46(1) _good_; 18_06_2019 15_41_08].csv
inflating: TASI/Output [11-47(1) _good_; 18_06_2019 15_36_31].csv
inflating: TASI/Output [3-14(1) _good_; 18_06_2019 14_06_52].csv
inflating: TASI/Output [3-18(1) _good_; 18_06_2019 13_55_35].csv
inflating: TASI/Output [4-31(1) _bad_; 18_06_2019 14_51_19].csv
该文件夹出现在我的 colab 文件中。
如果我通过传递变量来做到这一点:
file_folder="TASI.zip"
!unzip -c "$file_folder"
在输出中,它显示了每个文件的内容。并且该文件夹不会出现在 colab 文件中。输出:
Archive: TASI.zip
inflating: TASI/Output [11-13(1) _good_; 18_06_2019 15_58_09].csv
SetupTitle, Output
PrimitiveTest, I/V Sweep
TestParameter, Context.MainFrame, 4155C
TestParameter, Channel.UnitType, SMU, SMU, SMU
TestParameter, Channel.Unit, SMU3:MP, SMU4:MP, SMU1:MP
TestParameter, Channel.IName, ID, IS, IG
TestParameter, Channel.VName, VD, VS, VG
TestParameter, Channel.Mode, V, COMMON, V
TestParameter, Channel.Func, VAR1, CONST, VAR2....
如何在 colab 中解压缩文件夹并传递一个变量?
【问题讨论】:
您没有运行完全相同的命令,那么为什么您希望它们工作相同?你检查过“-c”标志的作用吗?据我了解,它告诉 unzip 将文件解压缩到 STDOUT/screen 而不是文件夹 去掉“-c”修复它。我从试图传递变量的人那里获取了在线代码,我猜他们使用它的方式与我不同。谢谢! 我已经用答案更新了你的问题。 【参考方案1】:要解压的-c
标志定义为extract files to stdout/screen (''CRT'').
您正在运行的两个命令不一样,在您专门提供文件名的命令中您没有使用-c 选项,因此解压缩到文件系统.在您提供变量的命令中,您使用 -c 标志告诉 unzip 只是将文件提取到屏幕上。
尝试使用变量解压缩,但不使用 -c 标志。
file_folder="TASI.zip"
!unzip "$file_folder"
【讨论】:
以上是关于如何解压缩传递变量的文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
使用 ZipFile 类从多个文件的 zip 存档中解压缩文件