我想在文件夹中随机选择一个文件打开它并写入其中。 我有:
import os, random
x = random.choice(os.listdir("F:\\1\\"))
y =open(x, 'w')
y.write('Hello World')
但没有写入。任何想法如何解决它?
答案 0 :(得分:1)
这是非常危险的,因为您为file
writing
打开了所有内容的blanks
,因此您实际上randomly
销毁了一个file
无论如何,如果这是您想要的,请使用with
语句并记住os.listdir
会在目录中返回file
names
,而不是paths
,因此您需要使用os.path.join
将2
部分加在一起:
import os, random
path = r"F:\1"
x = random.choice(os.listdir(path))
with open(os.path.join(path, x), 'w') as y:
y.write('Hello World')
答案 1 :(得分:0)
问题是您没有关闭文件:
import os, random
x = random.choice(os.listdir("F:\\1\\"))
y =open(x, 'w')
y.write('Hello World\n')
y.close()
答案 2 :(得分:0)
os.listdir
命令列出给定目录中的所有文件。它不前置路径(目录名称)。你必须这样做
import os, random
dirname = "F:\\1\\"
x = dirname + random.choice(os.listdir(dirname))
y = open(x, 'w')
y.write('Hello World')
此外,最好在写完文件后关闭文件。您可以y.close()
执行此操作。如果您使用with
语句,则会自动完成此操作:
import os, random
dirname = "F:\\1\\"
x = dirname + random.choice(os.listdir(dirname))
with open(x, 'w') as y:
y.write('Hello World')