我编写的代码用于生成0500000000到0500000100之间的数字:
def generator(nums):
count = 0
while count < 100:
gg=print('05',count, sep='')
count += 1
g = generator(10)
因为我使用linux,我想我可以使用这个命令python pythonfilename.py >> file.txt
然而,我收到了一个错误。
所以,在我添加g = generator(10)
之前:
with open('file.txt', 'w') as f:
f.write(gg)
f.close()
但是我收到了一个错误:
TypeError:write()参数必须是str,而不是None
任何解决方案?
答案 0 :(得分:1)
当您使用gg=print()
时,您将gg设置为None
。
然后导致错误,因为gg不是字符串,它是none。
如果您希望gg等于05, count
,请使用gg = "05" + str(count)
然后您必须单独打印结果。
如果您希望gg等于"print('05',count, sep='')"
(将其写入文件),则在文字周围加上语音标记
答案 1 :(得分:1)
如果参数必须是str
,请将其设为:
with open('file.txt', 'w') as f:
f.write(str(gg))
f.close()
但真正的问题(正如@世界统治者所说)是你将gg
定义为print
的结果; print
没有真实结果,会返回None
。您可能希望将gg
指定为:
gg = '05' + str(count)
但是,尽管如此,阻止您使用print
和python pythonfilename.py >> file.txt
的错误是什么?
如果我将以下文件创建为printy.py
:
def generator(nums):
count = 0
while count < 100:
print('05', count, sep='')
count += 1
g = generator(10)
在终端运行中:
python3 printy.py >> file.txt
然后我得到一个包含一百行数字的漂亮file.txt
文件。