如何批量移动同一类型的文件
时间:2010-05-01
来源:互联网
我想写一个功能,和这个py实现的一样(这段代码是用来写自动变幻的背景的,但是不知道为什么,我无法成功执行这段代码提示如此: 没有那个文件或目录)
我已经查到声明一个数组的方法
引用:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Name: slidexml.py
# Author: EthanZ6174
# Email: <[email protected]>
# Site: http://www.noslog.com
# Licence: GPLv3
# Version: 091127
import glob, os
import shutil
import time
curdir = os.getcwd()
os.chdir(curdir)
currentFilelist = glob.glob('*.*')
currentImageFiles = glob.glob('*.jpg')
currentTime = time.localtime()
length = len(currentImageFiles)
for i in currentFilelist:
if i == 'backgroundslide.xml':
os.remove(i)
f = file('backgroundslide.xml', 'w')
f.write('<background>\n')
f.write('\t<starttime>\n')
f.write('\t\t<year>' + str(currentTime.tm_year) + '</year>\n')
f.write('\t\t<month>' + str(currentTime.tm_mon) + '</month>\n')
f.write('\t\t<day>' + str(currentTime.tm_mday) + '</day>\n')
f.write('\t\t<hour>' + str(currentTime.tm_hour) + '</hour>\n')
f.write('\t\t<minute>' + str(currentTime.tm_min) + '</minute>\n')
f.write('\t\t<second>' + str(currentTime.tm_sec) + '</second>\n')
f.write('\t</starttime>\n')
f.write('<!--This animation will start at the time it created-->\n')
for i in currentImageFiles:
length = length - 1
f.write('\t<static>\n')
f.write('\t\t<duration>595.0</duration>\n')
f.write('\t\t<file>' + curdir + '/' + currentImageFiles[length] +'</file>\n')
f.write('\t</static>\n')
if length >= 1:
f.write('\t<transition>\n')
f.write('\t\t<duration>5.0</duration>\n')
f.write('\t\t<from>' + curdir + '/' + currentImageFiles[length] + '</from>\n')
f.write('\t\t<to>' + curdir + '/' + currentFilelist[length - 1] + '</to>\n')
f.write('\t</transition>\n')
f.write('</background>\n')
f.close()
# -*- coding: utf-8 -*-
# Name: slidexml.py
# Author: EthanZ6174
# Email: <[email protected]>
# Site: http://www.noslog.com
# Licence: GPLv3
# Version: 091127
import glob, os
import shutil
import time
curdir = os.getcwd()
os.chdir(curdir)
currentFilelist = glob.glob('*.*')
currentImageFiles = glob.glob('*.jpg')
currentTime = time.localtime()
length = len(currentImageFiles)
for i in currentFilelist:
if i == 'backgroundslide.xml':
os.remove(i)
f = file('backgroundslide.xml', 'w')
f.write('<background>\n')
f.write('\t<starttime>\n')
f.write('\t\t<year>' + str(currentTime.tm_year) + '</year>\n')
f.write('\t\t<month>' + str(currentTime.tm_mon) + '</month>\n')
f.write('\t\t<day>' + str(currentTime.tm_mday) + '</day>\n')
f.write('\t\t<hour>' + str(currentTime.tm_hour) + '</hour>\n')
f.write('\t\t<minute>' + str(currentTime.tm_min) + '</minute>\n')
f.write('\t\t<second>' + str(currentTime.tm_sec) + '</second>\n')
f.write('\t</starttime>\n')
f.write('<!--This animation will start at the time it created-->\n')
for i in currentImageFiles:
length = length - 1
f.write('\t<static>\n')
f.write('\t\t<duration>595.0</duration>\n')
f.write('\t\t<file>' + curdir + '/' + currentImageFiles[length] +'</file>\n')
f.write('\t</static>\n')
if length >= 1:
f.write('\t<transition>\n')
f.write('\t\t<duration>5.0</duration>\n')
f.write('\t\t<from>' + curdir + '/' + currentImageFiles[length] + '</from>\n')
f.write('\t\t<to>' + curdir + '/' + currentFilelist[length - 1] + '</to>\n')
f.write('\t</transition>\n')
f.write('</background>\n')
f.close()
我已经查到声明一个数组的方法
引用:
shell是支持数组使用的,目前只能支持一维数组,但参数个数没有限制。
1、申明一个数组
declare -a array
其实不用申明,按数组方式直接赋值给变量即可,bash 就知道那是数组
2、数组赋值
a)array=( var1 var2 var3 ... varN )
b)array=( [0]=var1 [1]=var2 [2]=var3 ... [n]=varN )
c)array[0]=var1 array[1]=var2 array[3]=var3 ... array[n]=varN
3、引用数组
echo ${ array[n] }
n为数组的序号,从0开始
4、计算数组元素个数
${ #array[@] } 或者 ${ #array[*] }
bash的特殊参数 @ 和 * 都表示“扩展位置参数,从1开始”,但形式上稍有差异,但在数组里使用好像是可以通用的。
5、遍历数组
方法一:for循环
for var in ${ array[@] };
do
echo $var
done
但是我不知道怎么读取当前目录的文件并且写入数组。希望高人指点一下。 1、申明一个数组
declare -a array
其实不用申明,按数组方式直接赋值给变量即可,bash 就知道那是数组
2、数组赋值
a)array=( var1 var2 var3 ... varN )
b)array=( [0]=var1 [1]=var2 [2]=var3 ... [n]=varN )
c)array[0]=var1 array[1]=var2 array[3]=var3 ... array[n]=varN
3、引用数组
echo ${ array[n] }
n为数组的序号,从0开始
4、计算数组元素个数
${ #array[@] } 或者 ${ #array[*] }
bash的特殊参数 @ 和 * 都表示“扩展位置参数,从1开始”,但形式上稍有差异,但在数组里使用好像是可以通用的。
5、遍历数组
方法一:for循环
for var in ${ array[@] };
do
echo $var
done
作者: ghostry 发布时间: 2010-05-01
没人理我没办法,研究了一下 py的语句,改了一下,总算能用了,这程序真郁闷,空格都计较
代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Name: slidexml.py
# Author: EthanZ6174
# Email: <[email protected]>
# Site: http://www.noslog.com
# Licence: GPLv3
# Version: 091127
import glob, os
import shutil
import time
curdir = os.getcwd()
os.chdir(curdir)
currentFilelist = glob.glob('*.*')
currentImageFiles = glob.glob('*.jpg')
currentTime = time.localtime()
length = len(currentImageFiles)
for i in currentFilelist:
if i == 'backgroundslide.xml':
os.remove(i)
f = file('backgroundslide.xml', 'w')
f.write('<background>\n')
f.write('\t<starttime>\n')
f.write('\t\t<year>' + str(currentTime.tm_year) + '</year>\n')
f.write('\t\t<month>' + str(currentTime.tm_mon) + '</month>\n')
f.write('\t\t<day>' + str(currentTime.tm_mday) + '</day>\n')
f.write('\t\t<hour>' + str(currentTime.tm_hour) + '</hour>\n')
f.write('\t\t<minute>' + str(currentTime.tm_min) + '</minute>\n')
f.write('\t\t<second>' + str(currentTime.tm_sec) + '</second>\n')
f.write('\t</starttime>\n')
f.write('<!--This animation will start at the time it created-->\n')
for i in currentImageFiles:
length = length - 1
print length
#print curdir
#print currentImageFiles[1]
f.write('\t<static>\n')
f.write('\t\t<duration>595.0</duration>\n')
f.write('\t\t<file>' + curdir + '/' + currentImageFiles[length] +'</file>\n')
f.write('\t</static>\n')
f.write('\t<transition>\n')
f.write('\t\t<duration>5.0</duration>\n')
f.write('\t\t<from>' + curdir + '/' + currentImageFiles[length] + '</from>\n')
if length >= 1:
f.write('\t\t<to>' + curdir + '/' + currentImageFiles[length-1] + '</to>\n')
if length <1:
f.write('\t\t<to>' + curdir + '/' + currentImageFiles[len(currentImageFiles)-1] + '</to>\n')
f.write('\t</transition>\n')
f.write('</background>\n')
f.close()
# -*- coding: utf-8 -*-
# Name: slidexml.py
# Author: EthanZ6174
# Email: <[email protected]>
# Site: http://www.noslog.com
# Licence: GPLv3
# Version: 091127
import glob, os
import shutil
import time
curdir = os.getcwd()
os.chdir(curdir)
currentFilelist = glob.glob('*.*')
currentImageFiles = glob.glob('*.jpg')
currentTime = time.localtime()
length = len(currentImageFiles)
for i in currentFilelist:
if i == 'backgroundslide.xml':
os.remove(i)
f = file('backgroundslide.xml', 'w')
f.write('<background>\n')
f.write('\t<starttime>\n')
f.write('\t\t<year>' + str(currentTime.tm_year) + '</year>\n')
f.write('\t\t<month>' + str(currentTime.tm_mon) + '</month>\n')
f.write('\t\t<day>' + str(currentTime.tm_mday) + '</day>\n')
f.write('\t\t<hour>' + str(currentTime.tm_hour) + '</hour>\n')
f.write('\t\t<minute>' + str(currentTime.tm_min) + '</minute>\n')
f.write('\t\t<second>' + str(currentTime.tm_sec) + '</second>\n')
f.write('\t</starttime>\n')
f.write('<!--This animation will start at the time it created-->\n')
for i in currentImageFiles:
length = length - 1
print length
#print curdir
#print currentImageFiles[1]
f.write('\t<static>\n')
f.write('\t\t<duration>595.0</duration>\n')
f.write('\t\t<file>' + curdir + '/' + currentImageFiles[length] +'</file>\n')
f.write('\t</static>\n')
f.write('\t<transition>\n')
f.write('\t\t<duration>5.0</duration>\n')
f.write('\t\t<from>' + curdir + '/' + currentImageFiles[length] + '</from>\n')
if length >= 1:
f.write('\t\t<to>' + curdir + '/' + currentImageFiles[length-1] + '</to>\n')
if length <1:
f.write('\t\t<to>' + curdir + '/' + currentImageFiles[len(currentImageFiles)-1] + '</to>\n')
f.write('\t</transition>\n')
f.write('</background>\n')
f.close()
作者: ghostry 发布时间: 2010-05-05
代码:
#!/bin/bash
#本脚本有以下功能:读取当前目录的文件列表并且写入数组
selfname=`basename $0` #获得脚本自身文件名
x=0 #数组索引初始
for filename in *;
do #循环当前目录下的文件
if [ "$selfname" = "$filename" ];then
continue #本文件跳过
else
array[$x]=$filename #文件名给数组索引为x的元素
let "x+=1" #改变索引指针,步长1
fi
done
echo ${array[@]} #打印数组,以便检查程序运行情况
#本脚本有以下功能:读取当前目录的文件列表并且写入数组
selfname=`basename $0` #获得脚本自身文件名
x=0 #数组索引初始
for filename in *;
do #循环当前目录下的文件
if [ "$selfname" = "$filename" ];then
continue #本文件跳过
else
array[$x]=$filename #文件名给数组索引为x的元素
let "x+=1" #改变索引指针,步长1
fi
done
echo ${array[@]} #打印数组,以便检查程序运行情况
作者: trigger 发布时间: 2010-05-12

作者: ghostry 发布时间: 2010-05-12
雖然過了這麼久,不過我還是要告訴你一個最最簡潔的寫法:
arr=(/home/*) #列出/home下的所有文件並賦值給數組arr
echo ${arr[@]} #打印出數組arr的所有元素
簡單就是美...
arr=(/home/*) #列出/home下的所有文件並賦值給數組arr
echo ${arr[@]} #打印出數組arr的所有元素
簡單就是美...
作者: 潛龍勿用 发布时间: 2011-09-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28