@ljm
2018-01-03T09:08:03.000000Z
字数 1205
阅读 937
experiment
描述一下程序的功能需求吧:
从命令行输入一个目录,访问这个目录下的所有非目录文件,将所有的文件名shuffle,然后将shuffle后的文件名放入一个文本文件中,在文本之中,不同的文件名之间用'\0'间隔开。
python代码如下:
#!/usr/bin/python
import sys
import os
import random
if __name__ == "__main__":
basepath = sys.argv[1] # get the path
listfile = []
dirs = os.listdir(basepath)
for file in dirs:
filepath = basepath + file
if(os.path.isfile(filepath)):
listfile.append(file) # only remain the file name in the list
random.shuffle(listfile) # shuffle the list
length = len(listfile) # writre the string list to file,and the seperate between the string is NUL
f = open("wlog.log", "w")
i = 1
for file in listfile:
f.write('/'+file+'\0')
f.write('\0')
运行代码:
chmod a+x test.py
sudo ./test.py /var/www/html/
sudo chmod 777 wlog.log
结果保留在wlog.log中
crfile可以生成文本文件。
从autobench官网下载autobench压缩包并安装,其自带crfile。
用法:
crfile -f filename -s size
-f filename
specifies the file to be created. If the file exists, an error is generated.
-s size
size is the size of the file, in bytes
demo:
crfile -f test1.txt -s 4096
编写了shell程序,生成测试数据:
#!/bin/bash
num_of_files=$1
min_size=$2
max_size=$3
rm text*.txt
for (( c=1; c<=num_of_files; c++ ))
do
size=$(shuf -i $min_size-$max_size -n 1)
crfile -f text$c.txt -s $size
done
usage:
1. chmod +x ./test.sh
2. ./test.sh 1000 1024 2048
- 第一个参数为生成文本文件的数目
- 第二个参数为文本文件size的最小值(以byte为单位)
- 第三个参数为文本文件size的最大值(以byte为单位)