我有一个包含大约1000个文件的目录....我想为每个文件运行相同的代码...
我的代码需要输入文件名。
我已经编写了代码,将其中一个信息以其他格式复制到其他格式中... 请建议一种方法,逐个复制所有1000个文件,而不必每次都更改文件名
我有一个字段serial_num需要连续,即如果第一个文件最多30个,那么在处理其他文件时它应该从30不再从0继续
需要帮助
感谢..
from string import Template
from string import Formatter
import pickle
f=open("C:/begpython/wavnk/text0004.lab",'r')
p='C:/begpython/wavnk/text0004.wav'
f1=open("C:/begpython/text.txt",'a')
m=[]
i=0
k=f.readline()
while k is not '':
k=f.readline()
k=k.rstrip('\n')
mi=k.split(' ')
m=m+[mi]
i=i+1
y=0
x=[]
j=1
t=(i-2)
while j<t:
k=j-1
l=j+1
if j==120 or j==i:
j=j+1
else:
x=[]
x = x + [y, m[j][2], m[k][2], m[l][2], m[j][0], m[l][0], p]
y=y+1
#f1.writelines(str(x)+'\n')
for item in x:
f1.write(str(item)+' ')
f1.write(str('\n'))
j=j+1
f.close()
f1.close()
我的代码.....
我有像text0001 ..... text1500.lab这样的系列文件名,并且想要一次运行它们而不需要每次都通过changin名称来调用它们
enter code here
答案 0 :(得分:2)
为什么不在目录中的文件列表上使用迭代器?我会发布一些示例代码,但我确实感觉到你正在让其他所有人为你完成整个工作。
答案 1 :(得分:1)
您也可以查看glob模块。就这么简单:
import glob
list_of_files = glob.glob('C:/begpython/wavnk/*.lab')
是的,它也适用于Windows。 但是,它只找到匹配的文件,不会读取它们或任何东西。
通过代码示例的外观,您可能对python感兴趣,也可能不感兴趣 csv模块也是如此。
答案 2 :(得分:0)
您可以使用[listdir] [1]列出目录的内容。
您可以使用类似
的内容过滤扩展程序allnames = listdir...
inputnames = [name for name in allnames \
where os.path.[splitext][2](name)\[1\] == ".lab" ]
您还可以查看filter()或map()内置函数。
http://docs.python.org/library/os.path.html#os.path.splitext