作为一名律师,我是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的方法,因为我必须要仔细查看你在文档中写的每一个字。提前谢谢。
答案 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()
希望有所帮助!