我已经有代码可以修改程序所在目录中的一个.edi文件(testedifact.edi)。 但是,我需要在包含许多.edi文件的文件夹中运行脚本,因此我基本上希望将代码应用于每个文件
以下是我在一个文件中使用的内容:
segmentsNew = []
global segments
with open( "testedifact.edi" , "r+") as edifactile:
segments = edifactile.readlines()
versionNumber = getVersionNumber(segments)
for segment in segments:
#do stuffs
edifactile.close()
with open ("testedifact.edi" , "w") as edifactfile:
edifactile.writelines(segmentsNew)
edifactfile.close()
但我希望能够对该目录之外的文件以及网络驱动器上的文件执行此操作
我试着遍历我目录中的文件(作为一个小测试),并像这样将每个文件传递给“with open..
”
directory = os.listdir(r'C:\Users\name\test_edi_dir')
for file in directory:
print("printing file names:", file)
with open(file, 'r') as edifactfile:
pass
print(edifactfile.closed)
虽然它会打印文件名,但我还是得到了FileNotFoundError: [Errno 2] No such file or directory: 'testedifact - Kopie (10).edi'
。。我做错了什么
有人能帮忙吗
file
只包含文件名,而不包含文件存储的路径。你也需要通过这个考试这是因为当您调用
open(file, 'r')
时,它试图在当前工作目录中打开一个文件将代码更改为:
下一个问题是,一些文件实际上是目录,您的代码可能会失败,并出现以下错误:
因此,在打开该文件之前,您要检查该文件是否实际上是一个文件:
最后,完整的代码是:
看起来您必须通过整个图像路径:
相关问题 更多 >
编程相关推荐