Python中的Begginer需要一些帮助。我正在使用Python 2.7。只连接一个连接最后100个文件
我想制作一个连接文件夹中最后100个文件的程序。在那个文件夹中我有很多文件,但我只想要连接最后的100个文件。我能够完成所有这些的连接(如果我不指定数字并更改for循环),但我无法选择最后的100个文件。这些文件由软件以二进制格式保存。它们保存在下面指定的文件夹中。我想删除100个文件一次在德新one.The节目,我已经做了级联如下:
#!/usr/bin/python
import os
import glob
os.chdir("C:\AFM_test\jpk_files")
rout=""
filename=glob.glob("*-*-*.*.*-*.*.*.jpk-force")
filename.sort(key=os.path.getmtime)
for filename in range(0,99):
filename=open(filename,"rb")
tout=filename.read()+\r\n"
rout = rout+tout
os.remove(filename)
filename.close()
fout = open("output.jpk-force","wb+")
fout.write(rout)
fout.close()
它doesn't做任何事情,错误是:
Traceback (most recent call last):
File "C:\AFM_test\jpk_files\AFM_test.py", line 12, in <module>
filename = open(filename,"rb")
TypeError: coercing to Unicode: need string or buffer, int found
[Finished in 0.1s]
我想这个问题是环路及其结构“的范围(0,99)”,当我已经串接该文件夹中的所有文件为:
#!/usr/bin/python
import os
import glob
os.chdir("C:\AFM_test\jpk_files")
rout=""
filename=glob.glob("*-*-*.*.*-*.*.*.jpk-force")
for filename in files:
filename=open(filename,"rb")
tout=filename.read()+\r\n"
rout = rout+tout
os.remove(filename)
filename.close()
fout = open("output.jpk-force","wb+")
fout.write(rout)
fout.close()
它的工作好了,除了删除订单,显示了t他的错误:
Traceback (most recent call last):
File "C:\try\AFM_test_2.py", line 17, in <module>
os.remove(filename)
must be string, not file
任何想法如何实现我的目标?
我希望我能正确解释自己。也许我错过了一些重要的东西,对不起,我只是这个领域的初学者。
谢谢。
检查错误发生线上的所有变量。打印出来,你会看到这个问题。 – acushner 2015-02-10 17:50:54
您正在为'filename'分配三种完全不同类型的不同值,覆盖以前的任何值。首先它是一个glob列表,然后它是一个整数,然后它是一个打开的文件句柄。为不同的事情使用不同的变量作为开始。 – tripleee 2015-02-10 17:58:19