我在Python中写了几行代码,看看我是否可以让它读取一个文本文件,从列表中自己创建列表,然后将所有内容转换回字符串并将其写为输出在另一个文件上。这可能听起来很愚蠢,但想法是在列出项目后将其洗牌,我需要确保我可以先正确地进行阅读和书写。这是代码:
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()打开输出文件之前),我试过刷新以及关闭文件......似乎没什么用。独立脚本似乎没有做太多,但是如果代码在解释器上工作,代码就不会太错了,对吗?
提前致谢!
P.S。:我是Python的新手,对编程很新,所以如果这是因为对基本问题的理解很浅,我很抱歉。
答案 0 :(得分:4)
输入文件在哪里以及您希望在何处保存输出文件。对于这种脚本,我认为最好使用绝对路径
使用:
open('/tmp/lista.txt', 'r')
而不是:
open('tmp/lista.txt', 'r')
我认为错误可能与此相关
答案 1 :(得分:2)
这可能与你开始翻译的地方有关。
尝试使用绝对路径/tmp/randolista.txt
而不是相对路径tmp/randolista.txt
来隔离问题。