我正在使用rsync递归到该目录中的所有文件(包括子目录中的所有文件):rathi/20090209.02s1.1_sequence.txtrathi/20090209.02s1.2_sequence.txtrathi/20090729.02s4.2_sequence.txt.gzrathi/Homo_sapiens_UCSC_hg19.tar.gzrathi/SRR002321.fastq.bz2rathi/SRR002322.fastq.bz2rathi/SRR002323.fastq.bz2rathi/SRR002324.fastqrathi/SRR002324.fastq.bz2rathi/human_g1k_v37.fasta.gzrathi/s_1_1_sequence.txtrathi/s_1_sequence.txtrathi/tesssssssssssssssssssssssssssssstttttttt.txtrathi/test_data.tar.gzrathi/Homo_sapiensrathi/Homo_sapiens/UCSCrathi/Homo_sapiens/UCSC/hg19rathi/Homo_sapiens/UCSC/hg19/Annotationrathi/Homo_sapiens/UCSC/hg19/Annotation/Archivesrathi/Homo_sapiens/UCSC/hg19/Annotation/Archives/ok.txt我对此有一个问题。目录清单,例如rathi/Homo_sapiens/UCSCrathi/Homo_sapiens/UCSC/hg19rathi/Homo_sapiens/UCSC/hg19/Annotationrathi/Homo_sapiens/UCSC/hg19/Annotation/Archives 对我没有用。我只想获取文件路径。只能与rsync一起使用吗?我subprocess.call用来在Python中调用rsync。所以,我希望我的输出是这样的:rathi/20090209.02s1.1_sequence.txtrathi/20090209.02s1.2_sequence.txtrathi/20090729.02s4.2_sequence.txt.gzrathi/Homo_sapiens_UCSC_hg19.tar.gzrathi/SRR002321.fastq.bz2rathi/SRR002322.fastq.bz2rathi/SRR002323.fastq.bz2rathi/SRR002324.fastqrathi/SRR002324.fastq.bz2rathi/human_g1k_v37.fasta.gzrathi/s_1_1_sequence.txtrathi/s_1_sequence.txtrathi/tesssssssssssssssssssssssssssssstttttttt.txtrathi/test_data.tar.gzrathi/Homo_sapiens/UCSC/hg19/Annotation/Archives/ok.txt
3 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
使用os.walk,它将列出所有文件。
import os
for root, dirnames, filenames in os.walk('rathi')
print filenames
它将列出所有文件名。
繁星coding
TA贡献1797条经验 获得超4个赞
如果要跳过目录下的所有内容,可以执行
rsync -avz --exclude '*/' source_directory destination_directory
如果要跳过所有空目录,可以使用
rsync -avz --prune-empty-dirs source_directory destination_directory
但是我不清楚您到底想实现什么。您想跳过目录,但不跳过其中的文件,如果不同步目录,那么要在哪里同步?还是这仅仅是屏幕上的输出?
如果您只想更改屏幕上的输出,则可以通过grep传递它,即
rsync -avz source_directory destination_directory | grep "\."
然后,您只会看到带有的行.
。请注意,您必须先转义.
,否则代表通配符。当然,这假定目录名称中没有任何点。
添加回答
举报
0/150
提交
取消