Python 在一行上显示文件中的整数
我有一个非常简单的任务,创建一个包含8个1-100之间的随机整数的文本文件,读取文件,在同一行上显示数字,计算偶数整数和奇数整数,然后显示它们 我遇到的问题是让字符串显示在同一行上。我已经浏览了多篇关于类似问题的文章,但都无济于事。我尝试使用.join,但是,当我包含它时,它似乎破坏了代码Python 在一行上显示文件中的整数,python,python-3.x,Python,Python 3.x,我有一个非常简单的任务,创建一个包含8个1-100之间的随机整数的文本文件,读取文件,在同一行上显示数字,计算偶数整数和奇数整数,然后显示它们 我遇到的问题是让字符串显示在同一行上。我已经浏览了多篇关于类似问题的文章,但都无济于事。我尝试使用.join,但是,当我包含它时,它似乎破坏了代码 #导入随机和时间 随机输入 导入时间 #定义主函数 def main(): #打开文件“mynumbers”,如果不存在,则创建它 myfile=open('mynumbers.txt','w') #语句以正
#导入随机和时间
随机输入
导入时间
#定义主函数
def main():
#打开文件“mynumbers”,如果不存在,则创建它
myfile=open('mynumbers.txt','w')
#语句以正确的格式将整数写入文本文件
对于范围(8)内的计数:
number=random.randint(1100)
myfile.write(str(number)+'\n')
#定义读取函数
def read():
#打开在主函数中创建的“mynumbers”文件
myfile=open('mynumbers.txt','r')
#将内容变量设置为打开的文件的内容
content=myfile.read()
#打印内容变量并从字符串中删除\n
stripit=content.rstrip('\n')
打印(条纹打印)
#调用函数、创建的打印和睡眠调用
main()
打印('已创建文件!')
时间。睡眠(1)
读()
时间。睡眠(5)
如能提供任何帮助,我们将不胜感激 代码看起来不错,但在read()函数上执行此操作
def read():
my_numbers = []
with open('mynumbers.txt', 'r') as infile:
for line in infile:
line = line.strip()
my_numbers.append(line)
print (' '.join(line))
写文件时不要添加换行符。只需使用空格(或逗号,随便什么)
read
函数将整个文件内容读入一个字符串。您对该字符串的rstrip
调用将从中删除最后一个换行符,但不会删除任何内部换行符。您无法有效地使用str.join
,因为您只有一个字符串
我认为有两个合理的解决办法。第一种方法是只保留单个字符串,但将所有内部换行符替换为空格:
def read():
myfile = open('mynumbers.txt', 'r')
content = myfile.read()
stripit = content.rstrip('\n')
nonewlines = stripit.replace('\n', ' ')
print(nonewlines)
另一种方法是将单个字符串拆分为一个单独的字符串列表,每个数字对应一个字符串。如果我们以后需要用它们做不同的事情,这会更有用。当然,我们要做的就是使用join
将它们重新组合在一起:
def read():
myfile = open('mynumbers.txt', 'r')
content = myfile.read()
content_list = content.split() # by default, splits on any kind of whitespace
rejoined_content = " ".join(content_list)
print(rejoined_content)
我会这样做,尤其是因为你提到了接下来需要做的奇偶部分。在第一个循环的末尾,您将有一个int(而不是str)列表,您可以使用这些int来确定它们是偶数还是奇数
def read():
my_nums = []
with open('mynumbers.txt', 'r') as f:
for line in f:
num_on_line = int(line.strip())
my_nums += [num_on_line]
print num_on_line, #don't forget that comma
for num in my_nums:
#display the even and odds
你可以用这种方式把数字打印在一行上
with open('mynumbers.txt', 'r') as numbers_file:
for line in numbers_file:
print(line.strip(), end=" ")
line.strip()
用于消除\n
字符。虽然我同意这是一种解决方案,但此程序的要点是将\n行转换为单行,因此它不适用于此场景。非常感谢!第一个正是我想要的。谢谢大家的快速回复!
with open('mynumbers.txt', 'r') as numbers_file:
for line in numbers_file:
print(line.strip(), end=" ")