【发布时间】:2019-03-26 08:42:06
【问题描述】:
我在 Linux Ubuntu 18.04 上的 Conda 虚拟环境中使用 Python 3.6.2。
我尝试了几种方法来列出特定路径的文件和目录,但我尝试的每一种方法似乎都只列出目录中的文件,而不是文件和目录。
我的代码包含
directory_contents = os.listdir(run_directory)
print(directory_contents)
只显示
['170224-ARC122-1-uM-Cis-S1-subsample_R1_001.fastq.gz', '170224-ARC122-1-uM-Cis-S1-subsample_R2_001.fastq.gz']
如果我在 listdir 命令之前调用了一个 break,然后单步执行 listdir 命令,则变量将填充正确的内容
ipdb.set_trace()
print(directory_contents)
directory_contents = os.listdir(run_directory)
print(directory_contents)
*** NameError: name 'directory_contents' 未定义
['170224-ARC122-1-uM-Cis-S1-subsample_R1_001.fastq.gz', 'bw', 'Stats', 'bwChrM','bg','170224-ARC122-1-uM-Cis-S1-subsample_R2_001.fastq.gz', 'bgChrM', '日志']
在listdir命令后调用break
directory_contents = os.listdir(run_directory)
ipdb.set_trace()
print(directory_contents)
给予
['170313-ARC122-no-Cis-S5-subsample_R2_001.fastq.gz', '170313-ARC122-no-Cis-S5-subsample_R1_001.fastq.gz']
我不理解什么或者我忽略了哪些额外的关键字/参数?为什么会根据我是在命令之前还是之后中断而得到不同的结果?
这个看似简单的问题似乎不值得提出,但我已经没有解决方案了。
【问题讨论】:
-
这里没有截图,请复制粘贴格式化后的代码(包括带有
break的sn-p) -
另外:如果你之前中断,你会在
os.listdir(..)将新内容放入之前获得变量的值,如果你之后中断,你会得到新内容... -
我当然应该得到相同的值,无论我是在之前还是之后打破。如果我之前中断并手动运行命令,我会得到 X 值,如果我在看到 X 值之后中断?
标签: python python-3.x listdir