У меня есть несколько файлов .txt в папке, которая не является папкой, в которой находится мой скрипт. Но когда я пытаюсь открыть эти файлы, я получаю LoadError: SystemError: opening file "/some/folder/filename.txt": No such file or directory
path = "/some/folder/"
files = filter(file -> endswith(file, ".txt"), readdir(path))
for file in files
open(file, "r")
end
Если я просто выполню println(file) в цикле for, я увижу, что файлы есть. Но если я пытаюсь что-то сделать с файлами, я получаю эту ошибку. Я использовал pwd(), чтобы получить правильный каталог. Действительно смущен, поскольку я получаю эту ошибку.
Если я делаю println(file) в цикле, я получаю только имя файла, поэтому я вообще не получаю никакого пути.
Да, тогда это так. Попробуйте объединить файл и путь для использования в качестве первого параметра функции open(). Это связано с тем, что когда вы запускаете open, базовый каталог для вашей программы не является путем, это, вероятно, папка, в которой находится ваш файл Julia.
Из строки документации:
help?> readdir
search: readdir
readdir(dir::AbstractString=pwd();
join::Bool = false,
sort::Bool = true,
) -> Vector{String}
Return the names in the directory dir or the current working directory if not given. When join is false, readdir returns just the names in the directory as is; when join is true, it returns joinpath(dir,
name) for each name so that the returned strings are full paths. If you want to get absolute paths back, call readdir with an absolute directory path and join set to true.
то есть вы хотите readdir(path; join = true)
получить полные пути к вашим файлам.
Если вы используете printLn(file), выводится относительный путь к $path или абсолютный путь?