Python 从文件中仅读取str对象
因此,在我的程序工作时,我试图读取一个文件,带回包含的所有信息。另一个函数拆分列表并随机生成包含的字符串。如果不是字符串,请重试 不幸的是,我的程序在执行此操作时突然崩溃,完全拒绝遵守,或者只是给了我一个错误,或者是的,突然崩溃 所以现在我正在寻找一种只读取字符串对象的方法,这样我就可以跳过检查它是否为整数的整个部分Python 从文件中仅读取str对象,python,random,readfile,Python,Random,Readfile,因此,在我的程序工作时,我试图读取一个文件,带回包含的所有信息。另一个函数拆分列表并随机生成包含的字符串。如果不是字符串,请重试 不幸的是,我的程序在执行此操作时突然崩溃,完全拒绝遵守,或者只是给了我一个错误,或者是的,突然崩溃 所以现在我正在寻找一种只读取字符串对象的方法,这样我就可以跳过检查它是否为整数的整个部分 import random from random import randrange def readfile(file): try: f = open(f
import random
from random import randrange
def readfile(file):
try:
f = open(file, 'r')
fil = f.readlines()
f.close()
return fil
except IOError:
print('fil finns inte')
return None
def chooseword(lista):
while True:
lista = random.choice(lista)
ordet = lista.split()
x = randrange(len(ordet))
ord = ordet[x]
try:
if ord.isalpha:
return ord
except:
print("none")
print(chooseword(readfile("file.txt")))
我尝试过使用random.choice而不是randrange,这没有什么区别
那么,我如何继续只导入字符串对象,比如单词,例如:Banan,而不是123或·%&
谢谢
谢谢您的代码中有很多错误。最突出的问题是您的
chooseword
函数。如果您读取的第一个字符串不是字母字符串,那么您将有一个无限循环,因为您使用随机元素的值覆盖lista
,因此,当您再次迭代循环时,您将一遍又一遍地读取同一个元素,并且永远不会退出循环
检查字符串是否只包含字母是函数调用,因此必须调用.isalpha()
。另外,如果您点击的是非alpha字符串,那么我怀疑您希望点击except(假设快5倍:)并打印“none”
…这在您的代码中永远不会发生。只要使用if,else
条件句即可
您的固定代码:
import random
from random import randrange
_file = file
def readfile(file):
with open(file, 'rb') as f:
try:
return f.readlines()
except:
print('fil finns inte') # not sure what your trying to catch here
def chooseword(lista):
while True:
dont_overwrite_lista = random.choice(lista)
ordet = dont_overwrite_lista.split()
x = randrange(len(ordet))
ord = ordet[x]
if ord.isalpha():
return ord
else:
print('none')
print(chooseword(readfile("file.txt")))
PS
很少有代码“拒绝服从”;)。记住,计算机是愚蠢的,完全按照我们告诉它们的去做。你的程序第一次通过
循环时,除了一行,你扔掉了所有的行;这样您就不再有行列表可供选择。我的建议是:不要个性化你的程序。你不是疯了,是的。理解python在做什么,因为它不会改变;你必须改变你的理解,和你的程序。哈哈,我知道如果我知道更多如何编码,它应该会遵守。但我是个新手,不知道写得太过火了。解释了一些,那个永无止境的循环确实让人想起了。有些代码是jibberish的,主要是为了让我理解我所做的事情,当物流运作时,这些代码会变得更好。我会尝试你的固定代码,希望是最好的!非常感谢