/ / पायथन फाइलें, एक सूची से / के लिए मान जोड़ना - अजगर, सूची, फ़ाइल, अजगर -३.x, उपयोगकर्ता-इनपुट

पायथन फाइलें, सूची में / से मूल्य जोड़ना - पायथन, सूची, फ़ाइल, पायथन-3.x, उपयोगकर्ता-इनपुट

मैं फ़ाइल से किसी सूची में मान जोड़ने का प्रयास कर रहा हूं, और फिर फ़ाइल से सूची में मान जोड़ने में सक्षम हो सकता हूं। यह वही है जो मेरे पास है:

L = []
def readFile(L):
ui = input("Please enter your file name:")
r = open(ui, "r")
files = r.readlines()
for line in files:
return float(line)
L.append(line)
r.close()

def fileAddValue(L):
ui = input("Please enter your file name:")
val = float(input("Enter the value you would like to add to the list: "))
r = open(ui, "a")
file = r.write(str(val) + "n")
for ix in r:
x = float(ix)
L.append(x)
L.sort()
r.close()

उत्तर:

जवाब के लिए 0 № 1

आपको कुछ समस्याएं हैं ...

सबसे पहले, जब आप एक फ़ाइल खोलते हैं तो आपको उपयोग करने की आवश्यकता होती है with, यह आपके लिए आपकी फ़ाइल को बंद करने का काम करेगा।

अब, जब आप प्रत्येक पंक्ति को बारी-बारी से पढ़ते हैं तो आप पहले वाले को वापस कर रहे हैं। यह पूरे समारोह से लौटता है इसलिए ऐसा नहीं है जैसा आप चाहते हैं। मुझे लगता है कि आप अपनी सूची में प्रत्येक आइटम को जोड़ना चाहते हैं।

साथ ही, आपके कार्यों को बेहतर ढंग से सामान्य बनाया गया है। फ़ाइल नाम और डेटा में पास करें। अधिक लचीलेपन के लिए उन्हें फ़ंक्शन के बाहर ले जाएं।

यह स्पष्ट नहीं है कि आप यहां क्या करना चाहते हैं। मैंने मान लिया है कि आप एक सूची में जोड़ने के लिए मान निर्दिष्ट करना चाहते हैं जो एक फ़ाइल में बनी हुई है। ऐसा करने के लिए बेहतर तरीके हैं। आपके मूल कोड के आधार पर यह मेरा प्रयास है।

def readFile(ui):
L = []
with open(ui, "r") as f:
for line in f.readlines():
L.append(float(line))
return sorted(L)

def fileAddValue(ui, val):
with open(ui, "a") as f:
f.write(str(val) + "n")

ui = raw_input("Please enter your file name:")
L = readFile(ui)
print("original file:")
print(L)
val = float(raw_input("Enter the value you would like to add to the list: "))
fileAddValue(ui, val)
L = readFile(ui)
print("updated file:")
print(L)

जवाब के लिए 0 № 2

क्या आपको ऐसा कुछ चाहिए?

L = []
def readFile():
ui = input("Please enter your file name:")
r = open(ui, "r")
files = r.readlines()
for line in files:
value = float(line)
L.append(value)
r.close()

def fileAddValue():
ui = input("Please enter your file name:")
val = float(input("Enter the value you would like to add to the list: "))
r = open(ui, "a+")
r.write(str(val) + "n")
for ix in r:
x = float(ix)
L.append(x)
L.append(val)
L.sort()
r.close()

if __name__ == "__main__":
readFile()
fileAddValue()
print(L)

हालांकि यह गैर-पीटोनिक है (आपके छूने की कोशिश नहीं की गई हैकोड आवश्यक होने तक), यह काम करता है अगर मुझे आपका प्रश्न सही लगता है। पायथन में इंडेंटिंग कोड महत्वपूर्ण है और एक फ़ंक्शन से लौटने की गारंटी देता है कि रिटर्न के बाद कोड कभी नहीं चलेगा। यदि आप एक फ़ंक्शन चाहते हैं जो कई मानों को "लौटाता है" तो आप उस "फ़ंक्शन" के साथ पुनरावृति कर सकते हैं for, उपयोग yield के बजाय return.