<p>问题是<code>glob</code>采用的文件名具有完整路径。我做了一些小改动,现在应该可以在你的代码上使用了。例如,不要使用<code>==</code>,而是使用<code>in</code></p>
<pre class="lang-py prettyprint-override"><code>if len(sys.argv) < 2:
print("Please supply the directory of the ascii files and an output-file as argument:")
print("python merge_file.py directory outfile")
exit()
directory = sys.argv[1]
os.chdir(directory)
filename = sys.argv[2]
fileobj_out = open(filename, "w")
starttime = time.time()
read_files = glob.glob(currwd+"\*.asc")
# Change [1]
with open("output.asc", "ab") as outfile:
for f in read_files:
with open(f, "rb") as infile:
# Change [2] '==' for 'in'
if "BigTree.asc" in f:
continue
else:
outfile.write(infile.read())
endtime = time.time()
runtime = int(endtime-starttime)
sys.stdout.write("The script took %i sec." %runtime)
</code></pre>
<p><strong>解释</strong></p>
<p>[1]将文件模式从“wb”(写入字节模式)更改为“ab”(追加字节模式),这样,如果文件存在,它将向其追加信息</p>
<p>[2]以这种方式更改了“in”的“==”,如果文件名<code>f</code>包含字符串<code>BigTree.asc</code>,它将跳过此文件并继续</p>
<p>请让我知道这是否有帮助</p>
<p>谢谢:D</p>