如果文件由字母组成,则无法从文件中读取名称
Can't read a name from a file if it is made of letters
使用 VScode + code runner 扩展
一旦 input()
函数接收到像 "qwe" 这样的字符串,程序 returns “NameError: name "qwe" is not defined”
如果输入接收到一串数字,如“123”,则一切顺利。
所有文件都存在于正确的目录中,并且 named/formatted 非常好。
函数示例:
def maker():
fileVar = str(input())
fileVar = lineFixer(fileVar)
with open(fileVar+".csv","r") as workfile:
for line in workfile:
return(line)
lineFixer
在某些情况下是一个哑函数(对结果没有影响):
def lineFixer(line):
line = line.strip('\n')
line = line.strip('\t')
line = line.replace('\n','')
line = line.replace('\t','')
return line
没有str(input())
,就是垃圾。
您遇到的问题是因为您使用的是 input()
而不是 raw_input()
。
将您的代码修改为 fileVar = raw_input()
这两者之间的区别在于输入试图将您的输入评估为代码。这就是为什么您会收到未定义 XYZ 的错误,它认为它是一个变量。此外,使用 raw_input,您不再需要使用 str()
.
转换为字符串
编辑:我假设,因为你没有指定这个并且从你得到的错误中,你正在使用 Python2.X。在Python3中,应该只有input()
,工作方式为raw_input()
。
使用 VScode + code runner 扩展
一旦 input()
函数接收到像 "qwe" 这样的字符串,程序 returns “NameError: name "qwe" is not defined”
如果输入接收到一串数字,如“123”,则一切顺利。
所有文件都存在于正确的目录中,并且 named/formatted 非常好。
函数示例:
def maker():
fileVar = str(input())
fileVar = lineFixer(fileVar)
with open(fileVar+".csv","r") as workfile:
for line in workfile:
return(line)
lineFixer
在某些情况下是一个哑函数(对结果没有影响):
def lineFixer(line):
line = line.strip('\n')
line = line.strip('\t')
line = line.replace('\n','')
line = line.replace('\t','')
return line
没有str(input())
,就是垃圾。
您遇到的问题是因为您使用的是 input()
而不是 raw_input()
。
将您的代码修改为 fileVar = raw_input()
这两者之间的区别在于输入试图将您的输入评估为代码。这就是为什么您会收到未定义 XYZ 的错误,它认为它是一个变量。此外,使用 raw_input,您不再需要使用 str()
.
编辑:我假设,因为你没有指定这个并且从你得到的错误中,你正在使用 Python2.X。在Python3中,应该只有input()
,工作方式为raw_input()
。