Python代码不写入文件,除非在解释器中运行
我已经用Python编写了几行代码,看看是否可以让它读取一个文本文件,在其中列出一个列表,然后将所有内容转换回字符串,并将其作为输出写入另一个文件。这听起来可能有点傻,但我的想法是,一旦项目被列出,就将其重新排列,我需要确保我首先能够正确地阅读和书写。代码如下:Python代码不写入文件,除非在解释器中运行,python,interpreter,Python,Interpreter,我已经用Python编写了几行代码,看看是否可以让它读取一个文本文件,在其中列出一个列表,然后将所有内容转换回字符串,并将其作为输出写入另一个文件。这听起来可能有点傻,但我的想法是,一旦项目被列出,就将其重新排列,我需要确保我首先能够正确地阅读和书写。代码如下: import csv,StringIO datalist = open('tmp/lista.txt', 'r') leyendo = datalist.read() separando = csv.reader(StringIO.
import csv,StringIO
datalist = open('tmp/lista.txt', 'r')
leyendo = datalist.read()
separando = csv.reader(StringIO.StringIO(leyendo), delimiter = '\t')
macrolist = list(separando)
almosthere = ('\t'.join(i) for i in macrolist)
justonemore = list(almosthere)
arewedoneyet = '\n'.join(justonemore)
with open('tmp/randolista.txt', 'w') as newdoc:
newdoc.write(arewedoneyet)
newdoc.close()
datalist.close()
当我在解释器上逐行运行它时,这似乎工作得很好,但是当我将它保存为单独的Python脚本并运行它(myscript.py)时,什么都没有发生。甚至没有创建输出文件。在查看了这里提出的类似问题之后,我引入了'with'参数(在通过output=open()打开输出文件之前),我尝试了刷新以及关闭文件。。。似乎什么都不管用。独立脚本似乎没有什么作用,但是如果它在解释器上工作,代码就不会太错误,对吗
提前谢谢
注:我是Python新手,对编程也相当陌生,如果这是因为对一个基本问题的理解肤浅,我深表歉意。输入文件在哪里,输出文件保存在哪里。对于这种脚本,我认为最好使用绝对路径 使用: 而不是:
open('tmp/lista.txt', 'r')
我认为错误可能与此有关,输入文件在哪里,输出文件保存在哪里。对于这种脚本,我认为最好使用绝对路径 使用: 而不是:
open('tmp/lista.txt', 'r')
我认为错误可能与此有关,它可能与您从何处开始解释器有关
尝试使用绝对路径
/tmp/randolista.txt
而不是相对路径tmp/randolista.txt
来隔离问题 这可能与你从哪里开始翻译有关
尝试使用绝对路径
/tmp/randolista.txt
而不是相对路径tmp/randolista.txt
来隔离问题 无需执行newdoc.close()
-一旦您用语句结束,它将自动关闭。另外,您不需要使用StringIO
-csv.reader(datalist,delimiter='\t')
就足够了。我已经取出了close()语句,但它仍然无法工作……不需要执行newdoc.close()
-一旦您用语句从末尾掉下来,它就会自动关闭。另外,您不需要使用StringIO
-csv.reader(datalist,delimiter='\t')
就足够了。我已经取出了close()语句,它仍然无法工作……谢谢!这可能是一个路径问题,是的。但我看不出这两个例子之间有什么区别……谢谢你的建议,我以后会尽量记住的。现在问题已经解决了(这确实是路径问题),请参见另一个答案!美好的记住,将解决问题的问题标记为已接受,谢谢!这可能是一个路径问题,是的。但我看不出这两个例子之间有什么区别……谢谢你的建议,我以后会尽量记住的。现在问题已经解决了(这确实是路径问题),请参见另一个答案!美好的记住,将解决问题的问题标记为已接受,谢谢!好了,问题解决了,这确实是一个路径问题,而且是一个非常愚蠢的问题。解释器的路径很好,但脚本所在的文件夹(与输入文件相同)的路径不好,因此无法找到该文件夹。我为浪费你的时间向你道歉。非常感谢大家@乔治·冈萨雷斯不担心。所以就是问问题,不需要道歉。非常感谢!我不久前就发现了这一点,但直到现在才开始阅读。很棒的社区。再次感谢,谢谢!好了,问题解决了,这确实是一个路径问题,而且是一个非常愚蠢的问题。解释器的路径很好,但脚本所在的文件夹(与输入文件相同)的路径不好,因此无法找到该文件夹。我为浪费你的时间向你道歉。非常感谢大家@乔治·冈萨雷斯不担心。所以就是问问题,不需要道歉。非常感谢!我不久前就发现了这一点,但直到现在才开始阅读。很棒的社区。再次感谢。