gpt4 book ai didi

python - 在 python 中创建新文件会导致 FileNotFoundError

转载 作者:行者123 更新时间:2023-12-01 04:31:29 27 4
gpt4 key购买 nike

我正在尝试从 python 3 中的文件名列表创建一组随机文件。

#!/usr/local/bin/python3

import random
import sys

random.seed()

print("Reading lines from ", sys.argv[1])

linecount = 0
lines = []
with open(sys.argv[1]) as f:
for line in f:
lines.append(line)

filelist = random.sample(lines, 5);
for newfile in filelist:
print("Touching file ", newfile)
open(newfile.rstrip(), "a+")

对于第一个文件,这总是失败:

$ : ./file-gen.py files.txt
Reading lines from files.txt
Touching file 62/6226320DE.pdf

Traceback (most recent call last):
File "./file-gen.py", line 19, in <module>
open(newfile.rstrip(), "a+");
FileNotFoundError: [Errno 2] No such file or directory: '62/6226320DE.pdf'

有什么想法缺少什么吗?

最佳答案

我认为问题在于文件模式 a+ 将创建文件(如果文件不存在),但不会创建目录。您必须编写自定义代码来从路径中分割文件名行(或者最好仍然使用 os.path : https://docs.python.org/2/library/os.path.html ,甚至可能 os.path.dirname(path)

看看:How to check if a directory exists and create it if necessary?

要警惕在系统中创建随机路径的安全考虑。验证路径是否位于特定沙箱内(考虑有人在您的文件中放入 ../..//etc/passwd 条目以让您附加随机用户数据.. os.path.abspath 可能很有用 - 因此我很警惕粘贴代码只会创建您复制并粘贴的随机目录,而不考虑这种效果。

关于python - 在 python 中创建新文件会导致 FileNotFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32354423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com