我是编码的绝对新手,很抱歉,如果这是一个非常基本的问题。我试图打开不同目录中的特定文件(从我当前工作的那个目录)并使其做一些事情。当我只是要求它找到文件时,它做得很好,但它不会打开文件(" FileNotFoundError:[Errno 2]没有这样的文件或目录")我不知道我哪里出错了。这是我的代码:
for file_name in os.listdir("/Users/sujathakoduvayurp/Downloads/exercises-and-examples/Chapter 9/exercises"):
if file_name.endswith(".dna"):
print (file_name)
这很好,我得到了具有正确扩展名的文件列表。像这样: xaa.dna xab.dna xac.dna xad.dna xae.dna xaf.dna xag.dna xah.dna xai.dna xaj.dna
但是当我这样做时:
for file_name in os.listdir("/Users/sujathakoduvayurp/Downloads/exercises-and-examples/Chapter 9/exercises"):
if file_name.endswith(".dna"):
dna_file= open("/Users/sujathakoduvayurp/Downloads/exercises-and-examples/Chapter 9/file_name","r")
我收到错误消息,如前所述。我不确定问题是什么。任何帮助将不胜感激。 谢谢! PS:我不确定它在这里是否正确,但我的缩进很好。
答案 0 :(得分:0)
错误在于这一行:
dna_file= open("/Users/sujathakoduvayurp/Downloads/exercises-and-example/Chapter 9/file_name","r")
它认为您正在尝试打开名为file_name
的文件,因为它包含在路径字符串中。要打开文件,应将路径与file_name
变量连接起来。例如:
for file_name in os.listdir("/Users/sujathakoduvayurp/Downloads/exercises-and-examples/Chapter 9/exercises"):
if file_name.endswith(".dna"):
dna_file = open("/Users/sujathakoduvayurp/Downloads/exercises-and-examples/Chapter 9/" + file_name,"r")
此代码应打开文件,因为file_name
已从路径字符串中删除,现在是包含文件名的变量。
答案 1 :(得分:0)
以下对我有用。 os.path.join
import os
path = "/Users/JupyterFiles/exercises and examples/working_with_the_filesystem/exercises"
for file_name in os.listdir(path):
if file_name.endswith(".dna"):
print(file_name)
dna_file = open(os.path.join(path,file_name),"r")
for line in dna_file:
DNA = line.rstrip("\n")
length = len(DNA)
print(length)