试图在目录中的所有文件上运行python程序需要扫描并使用每个文件名

试图在目录中的所有文件上运行python程序需要扫描并使用每个文件名,python,directory,filenames,Python,Directory,Filenames,我编写了一个非常基本的程序来删除文本文件中的引号。我有大约50个文件,我需要运行,而宁愿运行一个目录中的所有文本文件的程序 我面临的一个大问题是,我需要一次读取一个文件,一旦剥离“,文件的所有内容就会输出到一个使用输入文件名的新文件 例如: 正如我现在看到的,程序将输入文件名作为参数,并将输出文件名创建为infle name+\u output.txt。如何使它处理目录中的所有文本文件,但按我希望的方式命名文件 我的节目: import sys if len(sys.argv) <2:

我编写了一个非常基本的程序来删除文本文件中的引号。我有大约50个文件,我需要运行,而宁愿运行一个目录中的所有文本文件的程序

我面临的一个大问题是,我需要一次读取一个文件,一旦剥离
,文件的所有内容就会输出到一个使用输入文件名的新文件

例如:

正如我现在看到的,程序将输入文件名作为参数,并将输出文件名创建为
infle name+\u output.txt
。如何使它处理目录中的所有文本文件,但按我希望的方式命名文件

我的节目:

import sys

if len(sys.argv) <2:
    print "Usage: python %s requires input file" % (sys.argv[0])
    sys.exit()

infile = sys.argv[1]
outfile = infile.split(".")[0] + "_output.txt"

INFH = open(infile)
OFH = open(outfile, "w")

print "Output File = %s" % (outfile)

for line in INFH:
    line=line.strip('\n').replace('\"','')

    print >> OFH, line
INFH.close()
导入系统 如果len(sys.argv)>OFH,则行 通知关闭()
您可以这样做:

import sys, os

if len(sys.argv) < 2 and not os.path.isdir(sys.argv[1]):
    print("Usage: python {} directory".format(sys.argv[0]))
    sys.exit()

for entry in os.listdir(sys.argv[1]):
    if os.path.isfile(entry):
        infile = entry
        outfile = infile.split(".")[0] + "_output.txt"

        INFH = open(infile)
        OFH = open(outfile, "a")

        print("Output File = {}".format(outfile))

        for line in INFH:
            line = line.strip('\n').replace('\"','')
            OFH.write(line)

        INFH.close()
导入系统,操作系统 如果len(sys.argv)<2而不是os.path.isdir(sys.argv[1]): 打印(“用法:python{}directory.format(sys.argv[0])) sys.exit() 对于os.listdir(sys.argv[1])中的条目: 如果os.path.isfile(条目): 填充=入口 outfile=infle.split(“.”[0]+“_output.txt” INFH=打开(填充) OFH=打开(文件外“a”) 打印(“输出文件={}”。格式(输出文件)) 对于INFH中的行: line=line.strip('\n')。替换('\','') OFH.写入(行) 通知关闭()
只需添加一个目录而不是一个文件作为参数。

奇怪的缩进…我不想与stack overflow的代码块系统合作提问。为此,请使用
os.listdir(path)
os.path.isfile(path)
。我理解使用os.listdir,但os.path.isfile有什么帮助?
os.listdir(path)
返回目录中的文件和文件夹。使用
os.path.isfile(path)
使舒尔成为一个文件。这将返回一个索引器:列表索引超出范围嗯,您是否使用
python yourfile.py./dir/
?@cobaltcose我对代码做了一些更改,请重试。在Windows 10和Python 3.4.4下适用于我