使用Python遍历文件夹中所有文件,并在每个文件每行附加随机数
我正在使用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是指存放这些文件的文件夹的完整路径
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