Python 3 - FileNotFoundError: [Errno 2] No such file or directory
Python 3 - FileNotFoundError: [Errno 2] No such file or directory
我正在尝试修改脚本以接受参数,这样我就可以 运行 脚本,它会循环遍历多个 csv 文件并生成结果。
然而,当我试图 运行 带有参数的工作代码而不是使用 sys.argv 而不是 schema.csv[=11= 的硬编码时,我很早就失败了]
我正在 运行 将脚本从 schema.csv 所在的代码目录中删除,但我收到此错误。
FileNotFoundError:[Errno 2] 没有这样的文件或目录:“['schema.csv']”
我用 os.getcwd() 仔细检查了工作目录,我的想法是错误中突出显示的结果有太多引号或括号,但我不确定我可以测试什么。
import sys
def get_schema(table):
with open(str(sys.argv[1:])) as f:
i = 0
for line in f:
column = line.split(',')
datatype='STRING'
if (column[0] == table):
if 'char' in column[2]:
datatype = 'STRING'
elif 'int' in column[2]:
datatype = 'INTEGER'
elif 'boolean' in column[2]:
datatype = 'BOOLEAN'
elif 'timestamp' in column[2]:
datatype = 'TIMESTAMP'
elif 'numeric' in column[2]:
datatype = 'NUMERIC'
elif 'date' in column[2]:
datatype = 'DATE'
if (i == 0):
print('#%s' %(table))
print ('[')
i = i + 1
if (i == 1):
print ('{"name":"%s", "mode": "NULLABLE", "type": "%s"}' %(column[1],datatype))
if (i > 1):
print (',{"name":"%s", "mode": "NULLABLE", "type": "%s"}' %(column[1],datatype))
i = i + 1
print(',{"name":"ExtractAuditKey", "mode": "NULLABLE", "type": "INTEGER"}')
print (']')
get_schema(table=(sys.argv[1:]))
FileNotFoundError: [Errno 2] No such file or directory: "['schema.csv']"
with open(str(sys.argv[1:])) as f:
不会像您希望的那样工作。您正在使用 sys.argv[1:]
,它通过 "slicing" 为您提供列表,而不是字符串。如果您只输入一个值,则可以改为 sys.argv[1]
,它应该可以工作 - 索引给出条目,切片给出列表。
我正在尝试修改脚本以接受参数,这样我就可以 运行 脚本,它会循环遍历多个 csv 文件并生成结果。
然而,当我试图 运行 带有参数的工作代码而不是使用 sys.argv 而不是 schema.csv[=11= 的硬编码时,我很早就失败了]
我正在 运行 将脚本从 schema.csv 所在的代码目录中删除,但我收到此错误。
FileNotFoundError:[Errno 2] 没有这样的文件或目录:“['schema.csv']”
我用 os.getcwd() 仔细检查了工作目录,我的想法是错误中突出显示的结果有太多引号或括号,但我不确定我可以测试什么。
import sys
def get_schema(table):
with open(str(sys.argv[1:])) as f:
i = 0
for line in f:
column = line.split(',')
datatype='STRING'
if (column[0] == table):
if 'char' in column[2]:
datatype = 'STRING'
elif 'int' in column[2]:
datatype = 'INTEGER'
elif 'boolean' in column[2]:
datatype = 'BOOLEAN'
elif 'timestamp' in column[2]:
datatype = 'TIMESTAMP'
elif 'numeric' in column[2]:
datatype = 'NUMERIC'
elif 'date' in column[2]:
datatype = 'DATE'
if (i == 0):
print('#%s' %(table))
print ('[')
i = i + 1
if (i == 1):
print ('{"name":"%s", "mode": "NULLABLE", "type": "%s"}' %(column[1],datatype))
if (i > 1):
print (',{"name":"%s", "mode": "NULLABLE", "type": "%s"}' %(column[1],datatype))
i = i + 1
print(',{"name":"ExtractAuditKey", "mode": "NULLABLE", "type": "INTEGER"}')
print (']')
get_schema(table=(sys.argv[1:]))
FileNotFoundError: [Errno 2] No such file or directory: "['schema.csv']"
with open(str(sys.argv[1:])) as f:
不会像您希望的那样工作。您正在使用 sys.argv[1:]
,它通过 "slicing" 为您提供列表,而不是字符串。如果您只输入一个值,则可以改为 sys.argv[1]
,它应该可以工作 - 索引给出条目,切片给出列表。