我已经有了可以修改与我的程序位于同一目录中的一个 .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
仅包含文件名,而不包含其存储的路径。您也需要传递它。
path = r'C:\Users\name\test_edi_dir/'
directory = os.listdir(path)
for file in directory:
print("printing file names:", file)
with open(path+file, 'r') as edifactile:
pass
关于python - 迭代和修改目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59748308/