Lua Academy · पाठ

io.open से फ़ाइलें खोलना

io.open का उपयोग करके फ़ाइलों को पढ़ने, लिखने और जोड़ने के मोड में खोलें।

पाठ 1, कुल 4 में से12 चरण

io.open से फ़ाइलें खोलना, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

io.open का सिंटैक्स

io.open(filename, mode) एक फ़ाइल खोलता है और फ़ाइल हैंडल लौटाता है, या विफल होने पर nil और त्रुटि संदेश लौटाता है। मोड स्ट्रिंग: "r" पढ़ना (डिफ़ॉल्ट), "w" लिखना (पुरानी सामग्री हटाना), "a" जोड़ना, "r+" पढ़ना/लिखना, बाइनरी के लिए "b" प्रत्यय।

local f, err = io.open("test.txt", "w")
if not f then
  print("Error:", err)
  return
end
f:write("Hello, Lua!\n")
f:close()
print("Written successfully")

पठन मोड

मौजूदा फ़ाइल पढ़ने के लिए "r" मोड में खोलें। हमेशा nil की जाँच करें—यदि फ़ाइल मौजूद नहीं है, तो io.open nil और त्रुटि संदेश लौटाता है। यह कभी न मानें कि फ़ाइल मौजूद है।

local f, err = io.open("test.txt", "r")
if not f then
  print("Cannot open:", err)
  return
end
local content = f:read("*a")  -- read all
f:close()
print(content)

लेखन और जोड़ने के मोड

"w" फ़ाइल बनाता है या उसकी पुरानी सामग्री हटा देता है। "a" आवश्यकता होने पर फ़ाइल बनाता है और हमेशा अंत में सामग्री जोड़ता है। ऐसी लॉग फ़ाइलों के लिए जोड़ने वाले मोड का उपयोग करें जिनकी पिछली सामग्री आप खोना नहीं चाहते।

-- Write (creates/truncates)
local f = io.open("log.txt", "w")
f:write("Session started\n")
f:close()

-- Append (adds to end)
local g = io.open("log.txt", "a")
g:write("Event: login\n")
g:write("Event: action\n")
g:close()

बाइनरी मोड

बाइनरी रूप से पढ़ने/लिखने के लिए किसी भी मोड में "b" जोड़ें। Unix पर टेक्स्ट और बाइनरी मोड समान होते हैं। Windows पर टेक्स्ट मोड \n को \r\n में बदलता है; बाइनरी मोड ऐसा नहीं होने देता। गैर-टेक्स्ट फ़ाइलों के लिए हमेशा बाइनरी मोड का उपयोग करें।

-- Binary read
local f = io.open("image.png", "rb")
if f then
  local header = f:read(8)   -- read 8 bytes
  f:close()
  -- Check PNG magic number: \137PNG\r\n\26\n
  print("Read", #header, "bytes")
end

-- Binary write
local g = io.open("out.bin", "wb")
if g then
  g:write(string.char(0x89, 0x50, 0x4E, 0x47))
  g:close()
end

फ़ाइल हैंडल के मेथड

io.open से लौटाए गए फ़ाइल हैंडल में ये मेथड होते हैं: f:read(...), f:write(...), f:lines(), f:seek(whence, offset), f:flush(), f:close()। इन्हें हैंडल पर कोलन सिंटैक्स के साथ कॉल करें।

local f = io.open("data.txt", "w")
f:write("line 1\n")
f:write("line 2\n")
f:write("line 3\n")
f:flush()   -- force write to disk
f:close()

local g = io.open("data.txt", "r")
for line in g:lines() do
  print(line)
end
g:close()

io.input और io.output

io.input(f) डिफ़ॉल्ट इनपुट फ़ाइल सेट करता है; io.output(f) डिफ़ॉल्ट आउटपुट सेट करता है। io.read() वर्तमान इनपुट से पढ़ता है; io.write() वर्तमान आउटपुट में लिखता है। डिफ़ॉल्ट इनपुट stdin और डिफ़ॉल्ट आउटपुट stdout होता है।

-- Read from stdin (default input)
local line = io.read()  -- reads one line
print("You entered:", line)

-- Set default output to a file
io.output("out.txt")
io.write("This goes to out.txt\n")
io.output(io.stdout)  -- restore stdout

फ़ाइल का अस्तित्व जाँचना

Lua में file.exists() नहीं है, लेकिन आप पढ़ने के मोड में io.open का उपयोग कर सकते हैं—यदि यह विफल होता है, तो फ़ाइल मौजूद नहीं है (या उस तक पहुँचा नहीं जा सकता)। वैकल्पिक रूप से, POSIX सिस्टम पर os.execute या lfs लाइब्रेरी का उपयोग करें।

local function fileExists(path)
  local f = io.open(path, "r")
  if f then f:close(); return true end
  return false
end

print(fileExists("test.txt"))     -- true/false
print(fileExists("noexist.txt"))  -- false

मोड के साथ पढ़ना

f:read() फ़ॉर्मैट स्ट्रिंग स्वीकार करता है: "l" या "*l" एक पंक्ति पढ़ता है (नई पंक्ति हटाकर); "L" नई पंक्ति बनाए रखता है; "n" एक संख्या पढ़ता है; "a" या "*a" EOF तक पढ़ता है; कोई संख्या उतने बाइट पढ़ती है।

local f = io.open("data.txt", "r")
if f then
  local line1 = f:read("l")   -- first line, no newline
  local num   = f:read("n")   -- next number in file
  local rest  = f:read("a")   -- rest of file
  f:close()
  print(type(line1), type(num))
end

अस्थायी फ़ाइलें

io.tmpfile() पढ़ने/लिखने के मोड में एक अस्थायी फ़ाइल खोलता है। प्रोग्राम समाप्त होने या हैंडल का कचरा-संग्रह होने पर फ़ाइल अपने-आप हटा दी जाती है। फ़ाइल नामों को स्वयं संभाले बिना मध्यवर्ती प्रोसेसिंग के लिए इसका उपयोग करें।

local tmp = io.tmpfile()
tmp:write("temporary data\n")
tmp:write("more data\n")

-- Seek back to start and read
tmp:seek("set", 0)
local content = tmp:read("a")
print(content)
-- File auto-deleted when tmp is collected

lines() से पंक्तियों पर दोहराव

f:lines() ऐसा इटरेटर लौटाता है जो एक बार में एक पंक्ति पढ़ता है। इटरेटर समाप्त होने पर यह फ़ाइल को अपने-आप बंद कर देता है। बड़ी फ़ाइलों के लिए यह मेमोरी-कुशल है—यह पूरी फ़ाइल को एक साथ मेमोरी में लोड नहीं करता।

local function countLines(path)
  local count = 0
  local f, err = io.open(path, "r")
  if not f then return nil, err end
  for _ in f:lines() do
    count = count + 1
  end
  -- f is closed automatically by lines()
  return count
end

local n, err = countLines("data.txt")
print("Lines:", n)

त्वरित जाँच

यदि फ़ाइल मौजूद न हो, तो io.open("file.txt", "a") क्या करता है?

पुनरावृत्ति: io.open

सारांश:

  • io.open(path, mode) हैंडल या nil+त्रुटि लौटाता है
  • मोड: r w a r+ b
  • हैंडल का उपयोग करने से पहले हमेशा nil की जाँच करें
  • काम पूरा होने पर f:close() को कॉल करें
  • मेमोरी-कुशल पंक्ति-दर-पंक्ति दोहराव के लिए f:lines()
  • अपने-आप हटने वाली अस्थायी फ़ाइलों के लिए io.tmpfile()
शुरुआत निःशुल्क

एआई शिक्षक के साथ Lua सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
40
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “io.open से फ़ाइलें खोलना” पाठ निःशुल्क है?

हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “io.open से फ़ाइलें खोलना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“io.open से फ़ाइलें खोलना” में मैं क्या सीखूँगा?

io.open का उपयोग करके फ़ाइलों को पढ़ने, लिखने और जोड़ने के मोड में खोलें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“io.open से फ़ाइलें खोलना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. io.open से फ़ाइलें खोलना
  2. फ़ाइल की सामग्री पढ़ना
  3. फ़ाइलों में लिखना और सामग्री जोड़ना
  4. फ़ाइलें बंद करना और त्रुटियाँ संभालना
← Lua Academy पर वापस जाएँ