如何传递变量解压文件夹?

4

我试图通过在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中使用变量解压文件夹?

2
你并没有运行完全相同的命令,为什么你期望它们会有相同的工作结果?你是否检查了“-c”标志的作用?据我理解,它告诉unzip将文件解压缩到标准输出/屏幕而不是一个文件夹中。 - Chris Doyle
把“-c”去掉就解决了。我从网上找来的代码是为了传递一个变量,我猜他们使用的方式与我不同。谢谢! - Leo
我已经更新了你的问题并提供了答案。 - Chris Doyle
1个回答

4
“-c”选项是用来将文件提取到标准输出/屏幕(“CRT”)的。你运行的两个命令并不相同,当你明确提供文件名时,没有使用“-c”选项,因此unzip会将文件提取到文件系统中。而当你给出变量时,使用了“-c”选项,告诉unzip仅将文件提取到屏幕上。
请尝试使用变量运行unzip,但不要使用“-c”选项。
file_folder="TASI.zip"
!unzip "$file_folder" 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接