के लिए स्ट्रीमिंग डेटा मैं लगातार बदलती फ़ाइल तक पहुंचने के लिए पांडा के उपयोग को अनुकरण करने का प्रयास कर रहा हूं।पांडा डीएफ
मैं एक फ़ाइल csv फ़ाइल को पढ़ने, यह करने के लिए एक पंक्ति जोड़कर तो एक यादृच्छिक समय थोक इनपुट अनुकरण के लिए सो रहा है।
import pandas as pd
while True:
df = pd.read_csv('data.csv', header=None, names=['Name','DATE'])
print(df.shape)
जबकि मैं डीएफ के सही आकार हो रही है उस के साथ समस्या है, देखते हैं:
import pandas as pd
from time import sleep
import random
df2 = pd.DataFrame(data = [['test','trial']], index=None)
while True:
df = pd.read_csv('data.csv', header=None)
df.append(df2)
df.to_csv('data.csv', index=False)
sleep(random.uniform(0.025,0.3))
दूसरी फ़ाइल dataframe के आकार outputting द्वारा डेटा में परिवर्तन के लिए जाँच कर रहा है कुछ बार जहां यह (0x2)
आउटपुट कर रहा है।
यानी .:
...
(10x2)
(10x2)
...
(10x2)
(0x2)
(11x2)
(11x2)
...
यह होती है कुछ पर लेकिन आकार में प्रत्येक परिवर्तन (फ़ाइल dataframe को जोड़ने) के बीच नहीं।
इस जब पहली स्क्रिप्ट डेटा जोड़ने के लिए फ़ाइल खोल रहा है क्या होता है जानने के बाद, और दूसरे पटकथा इसे उपयोग करने में है, इसलिए (0x2) में असमर्थ है, यह किसी भी डेटा हानि कब होगा?
मैं सीधे धारा, केवल उत्पादन फ़ाइल का उपयोग नहीं कर सकते। या क्या कोई अन्य संभावित समाधान हैं?
संपादित
इसका उद्देश्य नए डेटा केवल (मैं एक कोड है कि करता है) "मक्खी पर" लोड और विश्लेषण करना है। कुछ विश्लेषण में आउटपुट/सेक, ग्राफिंग (स्ट्रीम प्लॉट के समान), और कुछ अन्य संख्यात्मक गणना शामिल होगी।
सबसे बड़ी समस्या यह है कि मैं केवल csv फ़ाइल के लिए उपयोग किया है, और मैं डेटा का विश्लेषण करने में सक्षम होने के रूप में यह हानि या देरी के बिना आता है की जरूरत है।
अनिवार्य रूप से लक्ष्य क्या है? क्या फ़ाइल में बदलावों की जांच करने के लिए वॉचडॉग की तरह कुछ बेहतर दृष्टिकोण हो सकता है? –
आप लॉक को भी कार्यान्वित कर सकते हैं, इसलिए केवल एक ही प्रक्रिया फ़ाइल को एक समय में खोल सकती है, यूनिक्स के पास इसे करने के कई तरीके हैं http://stackoverflow.com/questions/29520587/checking-running-python-script-within-the- अजगर स्क्रिप्ट/29522672 # 29522672। एक प्रक्रिया पढ़ने और अन्य लेखन शायद आपको कोई डेटा नहीं खोएगा, लेकिन यदि आप परिवर्तनों के परीक्षण के लिए डेटा का उपयोग कर रहे हैं तो आपको गलत आउटपुट मिलेगा –
वॉचडॉग उपयोग करने के लिए एक दिलचस्प टूल की तरह प्रतीत होता है, लेकिन जो मैं ढूंढ रहा हूं वह नहीं। मैंने और अधिक व्याख्या करने के लिए अपना प्रश्न संपादित किया। – Leb