目录1:我有一些txt文件和一个xml文件,我希望根据txt文件的内容在每次迭代中更改它们。
目录2:每次迭代后,我想将更改的xml文件复制到该目录。
执行后,我可以观察目录1中更改的xml文件,该文件包含预期的最后一个txt文件内容。但是,目录2包含具有预期名称的空文件。cp命令中可能存在一些问题?能否请你帮忙?
os.system('cp /home/username/xmlFile.xml /home/username/NewFolder/%s.xml' % myString)
整个脚本:
#!/usr/bin/python
import os
import re
from shutil import copyfile
arr = os.listdir('/di/rec/to/ry')
newArr = []
for j in arr:
m = re.search('.*txt', j)
if m != None:
newArr.append(m.group(0))
for i in newArr:
myString = ""
f = open('/home/username/xmlFile.xml', 'r+')
i = i[:-4]
data = f.readlines()
myString += str(i)
data[10] = data[10][:36] + i + data[10][64:]
f.truncate(0)
f.seek(0)
f.writelines(data)
#os.system('cp /home/username/xmlFile.xml /home/username/NewFolder/%s.xml' % myString)
copyfile('/home/username/xmlFile.xml', '/home/username/NewFolder/%s.xml' % myString)
您似乎很可能遇到同步问题。文件不会立即写入磁盘,而是缓冲在内存中以提高整体吞吐量。这意味着copyfile
呼叫看不到您对文件所做的最新更改。尝试调用f.flush()
之前copyfile
,确保提交了更改到磁盘。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句