使用Python遍历文件夹中所有文件,并在每个文件每行附加随机数

1 投票
4 回答
1836 浏览
提问于 2025-04-18 16:54

我正在使用Pig来生成输出结果。我想把这些输出随机分成两组。大家可能知道,Pig会把文件输出成part-m-00000或part-r-00000这样的格式,放在一个文件夹里。

我想遍历输出文件夹里的所有文件,并随机给每一行分配一个0或1。

我已经有了分配的代码部分:

     with open('part-r-00000','r') as csvinput:
with open('output2.csv', 'w') as csvoutput:
    writer = csv.writer(csvoutput, lineterminator='\n')
    reader = csv.reader(csvinput)

    all = []
    for row in reader:
        row.append(randint(0,1))
        all.append(row)

    for row in reader:
         all.append(row)

    writer.writerows(all)

这个代码是可以工作的。

我还有一些示例输入和输出:

    Sample input:
    0,1,2,1,4,3,3,4,1,1
    2,3,4,1,0,0,1,2,1,1
    0,2,3,1,0,2,3,1,1,1

    Sample output:
    0,1,2,1,4,3,3,4,1,1,0
    2,3,4,1,0,0,1,2,1,1,0
    0,2,3,1,0,2,3,1,1,1,1

不过,我需要先找出文件夹里有多少个文件,然后再加一个循环来遍历每个文件。我该怎么做呢?

4 个回答

0

如果你想让它在子目录中也能工作:

for subdir, dirs, files in os.walk(root):
    for file in files:
        # subdir+'/'+file would be the name of each file

补充说明:root是指存放这些文件的文件夹的完整路径

使用Python遍历目录

1

当然可以!请看下面的内容:

在编程中,有时候我们需要把一些东西放在一起,或者把它们分开。比如说,如果你有一堆数字,你可能想要把它们加起来,或者找出最大的那个。这个过程就叫做“操作数据”。

有些时候,我们还会用到“函数”。函数就像是一个小工具,你可以把一些东西放进去,它会给你一个结果。比如说,你可以把两个数字放进一个加法函数里,它就会告诉你这两个数字加起来是多少。

另外,编程里还有“循环”的概念。循环就像是一个重复的动作,比如你想要把一个动作做十次,你可以用循环来实现。这样你就不用写十遍同样的代码了,省时又省力。

最后,记得在编程时要保持代码的整洁。就像写作文一样,清晰的结构和注释会让别人(或者将来的你)更容易理解你的代码。

希望这些解释能帮助你更好地理解编程的基本概念!

import os
for f in os.listdir('/path/to/directory'):
    # do something with f
2

你可以简单地遍历当前目录下的所有文件,方法是使用 os.listdir,同时可以用 os.getcwd 来获取当前目录的路径:

import os
for filename in os.listdir(os.getcwd()):
    # do your stuff
0

你可以使用 os.listdir() 这个函数来列出当前文件夹里的所有文件。如果你想查看其他文件夹的内容,也可以在里面加上那个文件夹的路径。然后,你可以逐个查看这些文件:

import os

filelist = os.listdir()

for file in filelist:
    # do your stuff

撰写回答