【发布时间】:2021-12-11 21:21:53
【问题描述】:
所以我正在编写一个脚本来获取一个 .txt 文件并
- 附加每行的字符串表示
- 在文档的开头和结尾附加一个字符串。
所以
你好,
我叫 Jim,很高兴能开始为 Microsoft 工作。一世 相信我的工作经历完全符合微软文化。
谢谢!吉姆
会变成
大家好,\n 我叫 Jim,很高兴能开始为 Microsoft 工作。我相信我的工作经历完全符合微软文化。 \n谢谢! \n吉姆
同时在开头附上以下内容
{"prompt":"", "completion":"
最后是以下内容
"}
现在我有以下脚本,它成功占用最多 2 个 .txt 并创建字符串表示并在前端和末尾附加所需的键,但它不能做超过 2 个 PLUS 得到以下错误
PermissionError: [Errno 13] Permission denied
脚本
import sys
import os
import json
import os
if len(sys.argv) != 2:
print("Please add a directory")
sys.exit(0)
directory = sys.argv[1]
new_dir = os.path.abspath(directory+"/script_output")
if not os.path.isdir(new_dir):
os.mkdir(new_dir)
for f_str in os.listdir(directory):
if os.path.isdir(os.path.abspath(directory+f_str)):
continue
json_data = {}
json_data["prompt"] = ""
f_abs = os.path.abspath(os.path.join(directory, f_str))
og_file = new_dir + "/" + f_str
json_file = new_dir + "/" + os.path.splitext(f_str)[0] + ".json"
f = open(f_abs, "r", encoding="utf-8")
new_txt = repr(f.read())[1:-1]
json_data["completion"] = new_txt
with open(json_file, "w") as output_file:
json.dump(json_data, output_file)
print("Done")
编辑 1:
如您所见,我有 2 个文本文件应该在 script_output 文件夹中转换为 Json 文件。当我运行注释代码时,没有错误,但文件没有出现。
【问题讨论】:
-
完成,谢谢。
-
显然是文件权限问题。您可以通过简单地尝试打开文件并查看其工作原理来解决问题;其余的都无关紧要。
-
始终将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图,不是指向外部门户的链接)(不是在 cmets 中)。还有其他有用的信息。
-
错误可能提示您使用
open()中的目录。也许先检查一下f_abs中的内容。 -
你的大错误是
directory+f_str创建了错误的路径directoryfilename而不是directory/filename- 并且isdir()给出了False。您应该使用directory + "/" + f_str或更好地使用os.path.join(directory, f_str)
标签: python file web-scraping