Python 脚本执行正常,但不会写入指定目录中的任何文件

Python 脚本执行正常,但不会写入指定目录中的任何文件,python,python-2.7,file-writing,listiterator,Python,Python 2.7,File Writing,Listiterator,我正在尝试编写一个脚本,该脚本将遍历指定的目录,并使用新字符串写入任何.txt文件 阅读Lev Levitsky的解释后编辑 import os x = raw_input("Enter the directory path here: ") def rootdir(x): for dirpaths, dirnames, files in os.walk(x): for filename in files: try:

我正在尝试编写一个脚本,该脚本将遍历指定的目录,并使用新字符串写入任何.txt文件

阅读Lev Levitsky的解释后编辑

import os

x = raw_input("Enter the directory path here: ")

def rootdir(x):
    for dirpaths, dirnames, files in os.walk(x):
        for filename in files:
            try:
                with open(os.paths.join(dirpaths, filename 'a')) as f:
                    f.write("newline")
            except:
                print "Directory empty or unable to open file"
            return x
rootdir(x)
脚本执行,但我得到“目录为空或无法打开文件”异常


提前感谢您的任何输入。

如果这是整个脚本,那么您的函数永远不会被调用,所以难怪文件不会发生任何变化。您需要使用用户提供的路径实际调用函数:

rootdir(x)
我在代码中看到的其他问题:

  • 该函数将删除文本文件的内容,并将其替换为“换行符”。这是因为您以写模式打开文件。考虑使用AppEnter模式(<代码> A' < /COD>)代替.

  • 没有
    os.dirpath
    。您需要
    os.path.join(dirpath,filename)
    。另外,
    'w'
    join
    的参数,但它应该是
    open
    的参数。因此,事实上,文件将以读取模式打开,并且名称不正确,从而导致错误

  • 最后,由于循环体中的
    return
    语句,函数将在只处理一个文件后返回,而不涉及其余文件


    • 什么是
      os.dirpath.join
      ?啊!当然,关于调用函数。我改为输入原始输入,但忘记重新输入呼叫。在阅读了一些文档之后,我也已经对append进行了更改。我读了你关于加入目录路径和文件名的解释。打开一些易读的东西来阅读和打开,并能够相应地编辑我的代码**但是,我现在不确定的是,为.open函数输入'a'参数的语法是否合适。这只是:
      open(os.path.join(…),'a')
      的第二个参数。执行得很好,但仍然引发异常。我的逻辑显然有点问题<代码>打开(os.paths.join(dirpaths,filename),'a')作为f:f.write(“换行符”),除了:打印“目录为空或无法打开文件”。返回x@Ruckol1它是
      os.path
      ,而不是
      os.path
      。请考虑学习阅读并理解在例外情况下打印的回溯消息。它们的信息量很大。