Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不获取输出I';当使用.join时,我正在等待_Python - Fatal编程技术网

Python 不获取输出I';当使用.join时,我正在等待

Python 不获取输出I';当使用.join时,我正在等待,python,Python,我正在尝试使用.join删除括号和逗号。它在我的程序中的其他地方起作用,但在这里不起作用。代码如下: def load(): fileName = raw_input("Please enter the name of the save file to load. Please don't enter '.txt'.") return open(fileName+".txt", "r") fileToLoad = load() fileData = fileTo

我正在尝试使用.join删除括号和逗号。它在我的程序中的其他地方起作用,但在这里不起作用。代码如下:

def load():
        fileName = raw_input("Please enter the name of the save file to load. Please don't enter '.txt'.")
        return open(fileName+".txt", "r")

fileToLoad = load()
fileData = fileToLoad.readlines()
code = (fileData[4])

splitcode = "".join(code)
print code
print splitcode
我得到的两个结果都是:

['Y', 'G', 'R']
['Y', 'G', 'R']
我认为第二个输出应该是:

YGR

谢谢你的帮助

似乎
code
是文本字符串“
['Y','G','R']
”,而不是
join
按预期工作所需的列表。解决此问题的最简单方法是首先通过调用将
code
转换为列表,或者,如果您可以绝对确定文件内容不包含恶意或格式错误的内容,则可以尝试将其转换为有效的JSON,然后加载该JSON,而不是执行类似
eval
的危险操作

code = code.replace("'", '"')
listified = json.loads(code)
joined = ''.join(listified)

因此,您打开的文件中有一行包含Python格式的列表(作为字符串),其中包含元素
Y
G
R
?如果你想
加入
元素,你必须先把它们加载到一个真正的列表中。首先,您是否控制正在读取的文件的格式?我的第一个倾向是尝试将其保存在CSV或更易于机器读取的东西中。基本上,
['Y','G','R']
只是游戏策划人的代码。我现在用了eval,效果很好!我试着做ast.literal\u评估,但没有成功。没有什么大不了的,因为eval很好,但我得到的错误是没有定义ast。谢谢@JaAnTr:如果未定义
ast
,则表示您使用的是Python的2.6之前版本。也许是时候升级了。
eval
不是个好主意。这意味着任何人只要修改你的程序文件,就可以运行任意代码。@JaAnTr-只需在顶部键入“import ast”。您不应该真正使用纯eval。@jwodder我正在运行Python 2.7.5。知道为什么会这样吗?