Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-TypeError:Can';t转换为';int';对象隐式地访问str_Python - Fatal编程技术网

Python-TypeError:Can';t转换为';int';对象隐式地访问str

Python-TypeError:Can';t转换为';int';对象隐式地访问str,python,Python,我试图写入一个文件,但python给了我一个错误 f.write('20/10/2013;SP;83428407;10:00;-;10:30;'.format(random.randrange(0,6))+';'.format(random.randrange(0,6))+';:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0'+'\n') 也可以尝试使用str() 同样的错误: TypeError: Can't convert 'int'

我试图写入一个文件,但python给了我一个错误

f.write('20/10/2013;SP;83428407;10:00;-;10:30;'.format(random.randrange(0,6))+';'.format(random.randrange(0,6))+';:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0'+'\n')
也可以尝试使用str()

同样的错误:

TypeError: Can't convert 'int' object to str implicitly

您的第一行缺少格式占位符:

f.write('20/10/2013;SP;83428407;10:00;-;10:30;{};{};:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'.format(
    random.randrange(0,6), random.randrange(0,6)))
str.format()
填充的是
{}
占位符。请注意,您只需要一个字符串,并在其中填入
str.format()
的参数

演示输出:

>>> import random
>>> '20/10/2013;SP;83428407;10:00;-;10:30;{};{};:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'.format(
...     random.randrange(0,6), random.randrange(0,6))
'20/10/2013;SP;83428407;10:00;-;10:30;0;5;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'
>>> '20/10/2013;SP;83428407;10:00;-;10:30;{};{};:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'.format(
...     random.randrange(0,6), random.randrange(0,6))
'20/10/2013;SP;83428407;10:00;-;10:30;3;1;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'

您的字符串在某种程度上看起来格式不正确——如果您希望在字符串之间附加randrange值,则需要在格式的两侧添加“+”

f.write('20/10/2013;SP;83428407;10:00;-;10:30;'+str(random.randrange(0,6))+';'+str(random.randrange(0,6))+';:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n')
不过,创建一个字符串并显式插入值通常更为清晰

f.write('20/10/2013;SP;83428407;10:00;-;10:30;%s;%s;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n' % (str(random.randrange(0,6)), str(random.randrange(0,6))))

如果您想进行任何类型的字符串格式化或值对齐,这也使您能够控制输出。

您的两个代码都适用于我。@hcwhsa不清楚第一个代码在做什么。。。OP正在使用字符串的
格式
方法,但要格式化的字符串中没有
{}
。@hcwhsa:除了没有占位符之外,因此将忽略随机值。旁白:如果使用分号分隔值格式的数据,你可能想看看这个模块。这个错误似乎在其他地方,因为它对我有效(用print替换f.write并导入random),但是f.write可能是任何东西。
f.write('20/10/2013;SP;83428407;10:00;-;10:30;%s;%s;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n' % (str(random.randrange(0,6)), str(random.randrange(0,6))))