从 Python 中的 int 或 string 中删除小数位

Removing decimal place from int or string in Python

我有一个包含类似 0.0.1 的字符串的文本文件,我想删除小数点以使其成为 001 或 1。例如 1.0.1 将变成 101。

我想过使用 round() 但它会将 0.0.1 变成 0 而这不是我想要的。

您可以使用 join 和理解:

>>> s = '0.0.1'
>>> ''.join(c for c in s if c != '.')
'001'

如果要去除前导 0:

>>> str(int(''.join(c for c in s if c != '.')))
'1'

您可以删除“.”数字之间:

s = '0.0.1'
s = s.replace('.', '')

之后你可以把它变成一个整数:

int(s)

通过将其设为整数,您还将删除所有前导零。如果您之后需要一个字符串,只需将其转换回字符串:

s = str(int(s))

使用replace()

尝试像这样的代码块:

new_file = open('newfile.txt','w')

line_file = open('myfile.txt','r').readlines()

for line_in in line_file:
    line_out = line_in.replace('.','')
    new_file.write(line_out)

应该读取您的文件,删除所有句点,然后将结果写入新文件。

如果它不适用于您的具体情况,请对此答案发表评论,我会更新代码块来满足您的需求。

p.s。根据下面的评论,您可以在一行中实现这一点:

open('newfile.txt','w').write(open('myfile.txt','r').read().replace('.',''))

所以如果你想用它。