繁体   English   中英

在for loop Python中打开目录中的文件

[英]Open files in directory in for loop Python

我是一个初学者程序员。

在我的Py脚本中,我需要创建一个CSV文件,其中包含子目录中多个文件的信息。 运行代码时,出现错误: FileNotFoundError: [Errno 2] No such file or directory: '1' 我打印了目录的内容,发现目录不会读取文件的实际名称,而是将其替换为数字或字符。

问题 :这是典型的目录吗? 因为在研究中,其他人似乎可以使用

for file in directory:
    open(file, "r")

正确地。 我想念什么吗?

我的代码:

sub_dir = datetime + "-dir"
os.mkdir(sub_dir)

with open("csv.txt", "a") as csv, open("data.txt") as data:
    csv.write("Title" + "\r")
    for x in data:
        csv.write("," + x)
    csv.write("\r" + "Data")                
    for file in sub_dir:
        csv.write(file)
        csv.write(", " + "Word1")
        csv.write(", " + "Word2")
        csv.write(", " + "Word3")
        csv.write(", " + "Word4")
        csv.write("\r")
        f = open(file, "r")
        lines = f.readlines()
        for line in lines:
            line.replace("word5=", ", ")
            line.replace("word6=", ", ")
            line.replace("word7=", ", ")
            csv.write(line)

问题 :如何更改代码,使该file成为实际的文件名?

问题是这一行:

for file in sub_dir:

如果您每次循环都print(file) ,那显然是哪里出了问题: subdir是一个字符串,因此您只是一个接一个地遍历该字符串的字符。

您可能想要的是:

for file in os.listdir(sub_dir):

正如文档所述listdir

返回一个列表,其中包含由path给出的目录中条目的名称。 该列表是任意顺序的。 它不包括特殊条目“。” 和“ ..”,即使它们存在于目录中。

sub_dir不是目录; 它是目录的名称。

for file in sub_dir:

遍历名称中的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM