将文本写入列中的文件

时间:2014-07-25 16:42:07

标签: python output

作为一名律师,我是programimg的新手。作为一个热心的新手,我学到了很多东西。 (什么是变量,等等。)。

所以我在dir()工作了很多,我正在研究结果。如果我能在一列或多列中看到输出,那就更好了。所以我想编写我的第一个程序,例如在列的输出文件中编写dir(sys)

到目前为止,我已经得到了这个:

textfile = open('output.txt','w')
syslist = dir(sys)

for x in syslist:
    print(x)

显示的输出正是我想要的,但当我使用.write时:

textfile = open('output.txt','w')
syslist = dir(sys)

for x in syslist:
    textfile.write(x)

textfile.close()

文字在行中。

任何人都可以帮助我,如何将dir(sys)的输出写入列中的文件?

如果我可以问你,请写一下easysiet的方法,因为我必须要仔细查看你在文档中写的每一个字。提前谢谢。

4 个答案:

答案 0 :(得分:2)

print默认打印字符串后添加换行符,file.write不会。你可以这样做:

for x in syslist: textfile.write("%s\n" % x)

...在您追加时添加换行符。或者:

for x in syslist: textfile.write("%s\t" % x)

...用于两者之间的标签。

我希望这对你来说很明显"表面看来" ;)

答案 1 :(得分:1)

如果他们猜测您正在尝试添加.write无法提供的换行符,则其他答案似乎是正确的。但是既然你是编程新手,我会在python中指出一些最好让你的生活更轻松的好习惯:

with open('output.txt', 'w') as textfile:
  for x in dir(sys):
    textfile.write('{f}\n'.format(f=x))

''使用' open'作为上下文管理器。它会自动关闭它打开的文件,并让您快速浏览文件打开的位置。只保留需要在那里的上下文管理器中的内容。此外,通常鼓励使用.format。

答案 2 :(得分:0)

我对你的问题感到有点困惑,但我想答案就像添加标签一样简单。所以将textfile.write(x)更改为textfile.write(x + "\t"),不是吗?您可以根据数据大小调整选项卡数量。

我正在编辑我的答案。

请注意,dir(sys)为您提供了一个字符串值数组。这些字符串值没有任何格式。 print x命令默认添加换行符,这就是为什么你在各自的行中看到它们的原因。但是,写不。因此,当您调用write时,您需要添加任何必要的格式。如果您希望它看起来与print的输出相同,则需要添加write(x + "\n")以获取打印时自动包含的换行符。

答案 3 :(得分:0)

欢迎使用Python!

以下代码将为您提供三列中以制表符分隔的列表,但它不会为您提供合理的输出。它没有完全优化,因此应该更容易理解,并且我已经评论了添加的部分。

textfile = open('output.txt','w')
syslist = dir(sys)

MAX_COLUMNS = 3 # Maximum number of columns to print
colcount = 0    # Track the column number

for x in syslist:
    # First thing we do is add one to the column count when
    # starting the loop. Since we're doing some math on it below
    # we want to make sure we don't divide by zero.
    colcount += 1

    textfile.write(x)

    # After each entry, add a tab character ("\t")
    textfile.write("\t")

    # Now, check the column count against the MAX_COLUMNS. We
    # use a modulus operator (%) to get the remainder after dividing;
    # any number divisible by 3 in our example will return '0'
    # via modulus.
    if colcount % MAX_COLUMNS == 0:
        # Now write out a new-line ("\n") to move to the next line.
        textfile.write("\n")

textfile.close()

希望有所帮助!