簡體   English   中英

IOError: [Errno 13] 權限在 python 中被拒絕

[英]IOError: [Errno 13] Permission denied in python

我在 7 個不同的文件夾目錄中有多個文件。 所有這些文件都具有相同的名稱,我想將這些文件與一個文件的名稱相同,放在另一個目錄中

import os
from itertools import chain

paths = (r'C:/Users/Test_folder/Input/', r'C:/Users/Test_folder/Input_2/')
for path, dirs, files in chain.from_iterable(os.walk(path) for path in paths):
    for fname in paths:
        for line in fname:
                f = open(os.path.join(r'C:/Users/Test_folder/Test_output/', os.path.basename(fname)), 'a')
                f.write ('{:}\n'.format(line))
                f.close()

錯誤:

f = open(os.path.join(r'C:/Users/Test_folder/Test_output/', os.path.basename(fname)), 'a')
IOError: [Errno 13] Permission denied: 'C:/Users/Test_folder/Test_output/'
>>> 

對於permisson denied的問題

  with open(os.path.join('type filename here' , os.path.basename(line)), 'w')

要么

for filename in os.listdir(src):
   path = os.path.join(src, filename)
   with open(path, "r") as inputFile:
   content = inputFile.read()

你的代碼邏輯是錯誤的:

  • for fname in pathsfor fname in files
  • for line in fname不會逐行讀取文件fname ,因為fname是字符串,而不是文件 object

權限錯誤是由於您的代碼嘗試打開一個directory進行追加。

嘗試:

import os
from itertools import chain

paths = (r'C:/Users/Test_folder/Input/', r'C:/Users/Test_folder/Input_2/')
for path, dirs, files in chain.from_iterable(os.walk(path) for path in paths):
    for fname in files:
        with open(os.path.join(path, fname)) as fin, open(os.path.join('C:/Users/Test_folder/Test_output/', fname), 'a') as fout:
            fout.write(fin.read())

如果您使用的是 windows,請以管理員身份重新運行 ide。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM